Contenu du cours
Techniques Python Intermédiaires
Techniques Python Intermédiaires
Chaînage de Décorateurs
Chaînage des décorateurs en Python est une fonctionnalité puissante qui vous permet d'appliquer plusieurs décorateurs à une seule fonction. Chaque décorateur modifie ou améliore la fonction d'une certaine manière, et ils sont appliqués dans un ordre spécifique. Voici un exemple pratique pour illustrer le chaînage des décorateurs :
Deux Décorateurs Simples
Tout d'abord, définissons deux décorateurs simples :
Chaînage des Décorateurs
Maintenant, appliquons ces décorateurs à une seule fonction :
def decorator_one(func): def wrapper(): print("Decorator one start") func() print("Decorator one end") return wrapper def decorator_two(func): def wrapper(): print("Decorator two start") func() print("Decorator two end") return wrapper @decorator_one @decorator_two def greet(): print("Hello!") greet()
Dans chaque décorateur, il y a du code qui s'exécute avant de passer au décorateur suivant et après l'achèvement de ce décorateur. Cela fonctionne de manière superposée. Ils sont appliqués dans l'ordre où ils sont listés, de haut en bas. La sortie du décorateur supérieur devient l'entrée pour le suivant en bas. Cette superposition peut ajouter plusieurs fonctionnalités à la fonction originale.
Ordre d'exécution
Lorsque greet()
est appelé, l'ordre d'exécution sera :
- Depuis
decorator_one
, le premier print est exécuté ; - À l'intérieur de
decorator_one
, depuisdecorator_two
, le premier print est exécuté ; - Enfin, la fonction
greet
originale est exécutée ; - Ensuite, revenir en arrière et terminer l'exécution de
decorator_two
en imprimant le message ; - Le code entier est terminé en exécutant la dernière instruction print dans
decorator_one
.
La sortie sera :
Chaîner les décorateurs est un moyen puissant d'étendre le comportement des fonctions de manière modulaire et lisible.
J'espère que le prochain défi vous aidera à mieux comprendre ce sujet.
Merci pour vos commentaires !