Introducing the decorator pattern
As Python developers, we can write decorators in a Pythonic way (meaning using the language's features), thanks to the built-in decorator feature (https://docs.python.org/3/reference/compound_stmts.html#function). What exactly is this feature? A Python decorator is a callable (function, method, or class) that gets a function object, func_in
, as input and returns another function object, func_out
. It is a commonly used technique for extending the behavior of a function, method, or class.
But this feature should not be completely new to you. We have already seen how to use the built-in property
decorator, which makes a method appear as a variable in both Chapter 16, The Factory Pattern, and Chapter 17, The Builder Pattern. There are also several other useful built-in decorators in Python. In the Implementation section of this chapter, we will learn how to implement and use our own decorators.
Note that there is no one-to-one relationship between...