Exercices Fonctions & Modules Créer un protocole __len__
🎉

Bravo!

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

+ 0 tests cachés

Indices (3 disponibles)

solution.py