Retour à la leçonMission
Mission : rendre une classe Argent utilisable comme un nombre
Implémenter le protocole dunder d'une classe de montants monétaires pour l'intégrer aux opérateurs natifs, tout en respectant le couple __eq__/__hash__.
Contexte
Une classe Argent représente un montant avec une devise (Argent(100, "EUR")). Un développeur veut pouvoir écrire total = argent1 + argent2 et mettre des instances d'Argent dans un set pour dédupliquer des transactions identiques. Il a défini __eq__ mais son code plante avec TypeError: unhashable type: 'Argent' dès qu'il tente d'utiliser un set.
Tu dois compléter le protocole dunder de cette classe, comprendre pourquoi l'erreur survient, et exposer un montant en centimes via une propriété calculée.