La decoration dans Python est une méthode simple et statique qui permet de modifier un élément.
Dire qu'on décore un élément revient à remplacer un élément par un autre en utilisant la sortie d'un appelable.
Exemple:
@decorator
def my_func(arg):
retrurn arg
Ceci est exactement équivalent à:
def my_func(arg):
retrurn arg
my_func = decorator(my_func)
Quel est l'intérêt à décorer un élément?
Supposons que certaines fonctions effectuent des instructions communes, par exemple des fonctions qui doivent se connecter et se déconnecter d'un serveur avant chaque requête, chacune des fonctions responsable d'une requête. On peut factoriser ces deux opérations dans un décorateur, qui plus d'appeler l'une des fonctions il va effectuer les deux opérations.
Comment définir un décorateur?
Un décorateur est un appelable (callable) qui prendra en argument l'élément à décorer.