Décorateur sous forme de fonction
Ce décorateur va s'appuyer sur le mécanisme de la closure pour conserver les références sur la fonction décorée et les paramètres du décorateur, si il en a.
Sans paramètre
Le décorateur decorator va être appliqué à la fonction test via l'opérateur @
En écrivant:
def decorator(func):
def inner(*args, **kwargs):
return func(*args, **kwargs)
return inner
On applique le décorateur à la fonction décorée
@decorotor
def test(a, b):
return a * 2 + b
print(test(10, 2))
Cette écriture est équivalente à:
test = decorator(test)
print(test(10, 2))