Introduction aux décorateurs
Fait partie de la section Object Oriented Programming du Journey Python de Coddy — leçon 9 sur 64.
Les décorateurs sont un moyen de modifier ou d'améliorer des fonctions et des classes sans changer leur code d'origine. Ils utilisent le symbole @.
Voici un exemple d'un décorateur simple :
def my_decorator(func):
def wrapper():
print("Before function runs")
func()
print("After function runs")
return wrapperAppliquez le décorateur en utilisant @ :
@my_decorator
def say_hello():
print("Hello!")Appelez la fonction décorée :
say_hello()Sortie :
Before function runs
Hello!
After function runsLe @my_decorator équivaut à écrire :
def say_hello():
print("Hello!")
say_hello = my_decorator(say_hello)Mais la syntaxe @ est bien plus propre et plus facile à lire.
Point clé : Les décorateurs enveloppent les fonctions pour ajouter des fonctionnalités supplémentaires sans modifier le code de la fonction originale
Aide-mémoire
Les décorateurs modifient ou améliorent les fonctions sans changer leur code d'origine en utilisant le symbole @.
Structure de base d'un décorateur :
def my_decorator(func):
def wrapper():
print("Before function runs")
func()
print("After function runs")
return wrapperAppliquer un décorateur en utilisant @ :
@my_decorator
def say_hello():
print("Hello!")La syntaxe @my_decorator est équivalente à :
say_hello = my_decorator(say_hello)Essayez vous-même
Cette leçon ne comprend pas de défi de code.
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Object Oriented Programming
1Les fondamentaux de la POO
Fichiers externesIntroduction à la POOClasses vs ObjetsLe paramètre selfMéthodesAttributsMéthode constructeur (__init__)Récapitulatif - Calculatrice simple4Héritage
Héritage de baseLa fonction super()Redéfinition de méthodeHéritage multipleOrdre de résolution des méthodesRécapitulatif - Hiérarchie des employés7Méthodes spéciales
Introduction aux méthodes magiquesSurcharge d'opérateursMéthodes magiques de conteneurRécapitulatif - Liste personnalisée10Patrons de conception, Partie 1
Introduction aux patrons de conceptionPatron SingletonPatron FactoryPatron ObserverPatron Strategy2Décorateurs
Introduction aux décorateursDécorateur de propriétéDécorateur de méthode statiqueDécorateur de méthode de classe5Polymorphisme
Retour sur la redéfinition de méthodeDuck TypingClasses et méthodes abstraitesConception d'interfacesRécapitulatif - Calculateur de formes8Concepts avancés de la POO
Composition vs HéritageMixinsMéthodes statiques et de classeDécorateurs de classeGestionnaires de contexte11Patrons de conception, Partie 2
Patron CommandePatron AdaptateurPatron DécorateurPatron Méthode TemplatePatron ÉtatPatron Composite3Propriétés de classe
Variables d'instance vs variables de classeDécorateurs de propriétéAttributs privésRécapitulatif - Gestionnaire de compte bancaire