In this introductory tutorial, we’ll look at what decorators are and how to create and use them. Decorators provide a simple syntax for calling higher-order functions.
By definition, a decorator is a function that takes another function and extends the behavior of the latter function without explicitly modifying it.
Sounds confusing—but it’s really not, especially after we go over a number of examples. You can find all the examples from this article here.