Exercices Projets guidés E-commerce #2 : Classe Panier
🎉

Bravo!

Intermédiaire 🧠 Fondamentaux 20 XP 0 personnes ont réussi

E-commerce #2 : Classe Panier

Le panier stocke les produits et leurs quantites. En interne, c'est un dictionnaire ou les clés sont des produits et les valeurs sont des quantites.

Pour que Produit soit utilisable comme clé de dictionnaire, il doit etre hashable (avoir __hash__). On base le hash sur le nom du produit.

Une astuce utile : dict.get(cle, défaut) retourne la valeur si la clé existe, sinon le défaut. Et dict.pop(cle, None) supprime la clé sans lever d'erreur si elle n'existe pas.

Crée la classe Panier avec :
- __init__ : initialise self.items comme dictionnaire vide
- ajouter(produit, quantite=1) : ajoute la quantite (cumule si produit deja present)
- retirer(produit) : supprime le produit du panier (pas d'erreur si absent)
- total() : retourne la somme de prix * quantite pour tous les items
- __len__ : retourne le nombre total d'articles (somme des quantites)

Exemple :
pan = Panier()
pan.ajouter(Produit('Livre', Decimal('10'), 5), 2)
pan.total() # Decimal('20')
len(pan) # 2

Tests (2/4)

Ajouter et total
from decimal import Decimal
p = Produit('Livre', Decimal('10.00'), 5)
pan = Panier()
pan.ajouter(p, 2)
assert pan.total() == Decimal('20.00')
__len__
from decimal import Decimal
p1 = Produit('A', Decimal('5'), 10)
p2 = Produit('B', Decimal('3'), 10)
pan = Panier()
pan.ajouter(p1, 3)
pan.ajouter(p2, 2)
assert len(pan) == 5

+ 0 tests cachés

Indices (3 disponibles)

solution.py