Decorators in Python are used to modify behaviours of functions. For example, if you want to log all calls to a particular set of functions, cache its parameters and return values, perform benchmarks, etc.
Decorators are prefixed with the @ symbol and placed right before function declaration:
@my_decorator
def func1():
pass