PaliSkill
Python avancé

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