Avancé
🧠 Fondamentaux
30 XP
0 personnes ont réussi
Objet avec historique des modifications
Maintenant qu'on connait __sétattr__, on peut l'utiliser pour des choses plus interessantes que bloquer des modifications. Par exemple, garder un historique de toutes les modifications d'attributs.
Le principe : a chaque fois qu'un attribut est modifie, on enregistre l'ancienne et la nouvelle valeur dans un historique.
Écris une classe Tracable qui garde un historique de toutes les modifications d'attributs. L'historique est une liste de tuples (nom_attribut, ancienne_valeur, nouvelle_valeur). Pour la première assignation, l'ancienne valeur est None.
La classe doit avoir une méthode historique() qui renvoie cette liste.
Attention : l'attribut _historique lui-meme ne doit pas etre trace (sinon c'est la recursion infinie).
Exemple : t = Tracable() t.nom = 'Alice' t.nom = 'Bob' t.historique() renvoie [('nom', None, 'Alice'), ('nom', 'Alice', 'Bob')]