Leçon 5 / 10 — Chapitre 9: Mise en pratique : gestionnaire de tâches
Un décorateur pour journaliser les appels de méthode
Cinquième étape : réutiliser le décorateur journaliser (vu au quatrième chapitre) pour tracer automatiquement chaque appel à ajouter, sans modifier le corps de la méthode elle-même.
from functools import wraps
import logging
def journaliser(fonction):
@wraps(fonction)
def enveloppe(*args, **kwargs):
logging.info(f"Appel de {fonction.__name__}")
return fonction(*args, **kwargs)
return enveloppe
class GestionnaireTaches:
def __init__(self):
self.taches = []
@journaliser
def ajouter(self, titre, priorite=2):
tache = Tache(titre, priorite)
self.taches.append(tache)
return tache
logging.basicConfig(level=logging.INFO)
g = GestionnaireTaches()
g.ajouter("Ecrire le rapport")
Ce code affiche INFO:root:Appel de ajouter avant que la tâche ne soit réellement ajoutée : un décorateur (vu au quatrième chapitre) s'applique à une méthode exactement comme à une fonction normale — *args, **kwargs (vus au quatrième chapitre) capture self en plus des autres arguments, puisqu'une méthode reçoit toujours self en premier.
Cette technique évite d'ajouter logging.info(...) manuellement au début de chaque méthode à tracer : un seul @journaliser suffit, réutilisable sur ajouter, marquer_terminee, ou toute autre méthode du gestionnaire.
À vous de jouer : appliquez @journaliser à la méthode marquer_terminee (déjà écrite), et vérifiez que l'appel est bien journalisé.
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