Intermédiaire
🧠 Fondamentaux
20 XP
0 personnes ont réussi
Mixin de journalisation
Un mixin est une classe concue pour etre heritee en complement d'une autre. Elle apporte une fonctionnalité transversale (comme le logging, la serialisation, etc.) sans représenter une entite metier. C'est comme un accessoire que tu ajoutes a n'importe quelle voiture : GPS, camera de recul, etc.
Attention a un piege classique : si tu definis une liste au niveau de la classe (comme attribut de classe), toutes les instances partagent la meme liste. Pour que chaque instance ait sa propre liste, initialise-la dans __init__.
Par exemple :
class MonMixin: def __init__(self): self.historique = [] # chaque instance a sa propre liste
Crée un mixin LogMixin avec : - __init__ qui initialise self._logs = [] - log(message) qui ajoute message dans self._logs - get_logs() qui retourne la liste des logs
Puis crée Service(LogMixin) avec exécuter(tache) qui logue 'Execution: {tache}' et retourne True.
Exemple : s = Service() s.exécuter('calcul') s.get_logs() # renvoie ['Execution: calcul']
Tests (2/4)
Exécution
s = Service()
assert s.exécuter('calcul') == True
Log enregistré
s = Service()
s.exécuter('test')
assert 'Exécution: test' in s.get_logs()