Décorateurs Python
Les décorateurs en Python sont des fonctions qui permettent de modifier le comportement d’autres fonctions. Ils sont très utiles pour ajouter des fonctionnalités supplémentaires à une fonction sans avoir à la modifier directement.
Voici un exemple de décorateur qui ajoute un comportement de journalisation à une fonction :
def logger(func): def wrapper(*args, **kwargs): print(f"Appel de la fonction {func.__name__} avec les arguments {args} et {kwargs}") result = func(*args, **kwargs) print(f"Le résultat de la fonction est {result}") return result return wrapper @logger def add(x, y): return x + y add(5, 6)
Le décorateur
prend une fonction en entrée et renvoie une nouvelle fonction qui ajoute le comportement de journalisation. Lorsque vous appelez la fonction
, elle appelle la fonction
qui effectue la journalisation et appelle la fonction originale
.
Le décorateur est défini en utilisant le symbole
suivi du nom de la fonction décoratrice, comme ceci :
@logger def add(x, y): return x + y
Cette syntaxe est équivalente à ceci :
def add(x, y): return x + y add = logger(add)
Les décorateurs sont une fonctionnalité puissante de Python qui vous permet de facilement ajouter de nouvelles fonctionnalités à vos fonctions existantes sans avoir à les modifier directement. Ils sont souvent utilisés pour ajouter de la journalisation, du contrôle d’accès ou d’autres fonctionnalités de gestion de données à des fonctions existantes.