Intermédiaire
🧠 Fondamentaux
20 XP
0 personnes ont réussi
Créer un protocole __len__
En Python, quand tu appelles len() sur un objet, Python cherche une méthode speciale __len__() sur cet objet. C'est ce qu'on appelle un protocole : un contrat implicite entre ton objet et les fonctions builtin de Python.
Si ta classe n'a pas de méthode __len__(), appeler len() dessus declenchera une erreur TypeError.
Par exemple, les listes, les chaines et les dictionnaires ont tous une méthode __len__(). C'est pour ca que len([1,2,3]) fonctionne.
Tu vas créer une classe Panier qui représente un panier de courses. Le panier stocke des articles (une liste de chaines). Il doit supporter len() pour connaitre le nombre d'articles.
Écris une classe Panier avec : __init__(self) qui initialise une liste vide d'articles ajouter(self, article) qui ajoute un article __len__(self) qui renvoie le nombre d'articles
Exemple : p = Panier() p.ajouter('pommes') p.ajouter('pain') len(p) renvoie 2
Tests (3/4)
Panier vide
p = Panier()
assert len(p) == 0
Apres ajout
p = Panier()
p.ajouter('pommes')
assert len(p) == 1
Plusieurs articles
p = Panier()
p.ajouter('pommes')
p.ajouter('pain')
p.ajouter('lait')
assert len(p) == 3