Retour à la leçon
Mission

Mission : dompter une dataclass Commande qui refuse de se laisser écrire

Corriger une dataclass qui lève une erreur à la définition à cause d'une valeur par défaut mutable interdite, puis exploiter frozen et __post_init__ pour un objet de configuration fiable.

Contexte

Un développeur écrit @dataclass class Commande: id: int; articles: list[str] = [] et obtient immédiatement une ValueError au chargement du module, avant même d'avoir instancié une seule Commande. Il ne comprend pas pourquoi Python refuse une syntaxe qui fonctionnerait sans problème dans une fonction normale.

Tu dois corriger cette dataclass, créer une configuration immuable et hashable, puis valider un champ dérivé avec __post_init__.