Leçon 2 / 10 — Chapitre 4: Décorateurs
Le décorateur simple avec @
La syntaxe @nom_decorateur, placée juste au-dessus d'une définition de fonction, remplace exactement le motif f = decorateur(f) vu à la leçon précédente — en plus lisible.
def journaliser(fonction):
def enveloppe():
print("Appel de la fonction...")
resultat = fonction()
print("Fonction terminee")
return resultat
return enveloppe
@journaliser
def dire_bonjour():
print("Bonjour")
dire_bonjour()
Ce code affiche exactement le même résultat que la leçon précédente : @journaliser juste au-dessus de def dire_bonjour(): équivaut à écrire dire_bonjour = journaliser(dire_bonjour) juste après sa définition — Python applique cette transformation automatiquement, dès la lecture du fichier.
Après décoration, appeler dire_bonjour() exécute en réalité enveloppe(), qui appelle à son tour la fonction d'origine (fonction(), la véritable dire_bonjour) au milieu de son propre code — le nom dire_bonjour désigne désormais la version enveloppée, pas l'originale.
Un décorateur peut envelopper n'importe quelle fonction respectant sa signature, ce qui le rend réutilisable sur plusieurs fonctions différentes, sans dupliquer journaliser :
@journaliser
def calculer():
return 42
À vous de jouer : décorez une fonction de votre choix avec @journaliser (déjà écrite), et vérifiez que les messages s'affichent bien autour de son exécution.
Continuez ce module
Débloquez les leçons restantes ainsi que la certification finale.
2 500 XOF / 3,81 € / 4,15 $
Débloquez les 87 leçons restantes de ce module
Votre paiement est vérifié avant l'activation de l'accès