Exercices POO __len__ et __getitem__
🎉

Bravo!

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

__len__ et __getitem__

Python utilise des méthodes speciales pour les opérations courantes :
__len__ est appelee par len(objet)
__getitem__ est appelee par objet[index]
__contains__ est appelee par élément in objet

Grace a ces méthodes, tes objets se comportent comme des listes ou des dictionnaires. C'est ce qu'on appelle le duck typing : si ca marche comme une liste, Python le traite comme une liste.

Exemple :

class Panier:
def __init__(self):
self._articles = []
def ajouter(self, article):
self._articles.append(article)
def __len__(self):
return len(self._articles)
def __getitem__(self, i):
return self._articles[i]

p = Panier()
p.ajouter('pomme')
print(len(p)) # 1
print(p[0]) # pomme

Crée une classe Playlist(nom) avec :
ajouter(chanson) qui ajoute une chanson (chaine de caracteres)
__len__ qui retourne le nombre de chansons
__getitem__ qui permet l acces par index
__contains__ qui permet le test avec in

Exemple :
p = Playlist('Rock')
p.ajouter('Bohemian Rhapsody')
len(p) renvoie 1
p[0] renvoie 'Bohemian Rhapsody'
'Bohemian Rhapsody' in p renvoie True

Tests (2/4)

Len
p = Playlist('Rock')
p.ajouter('Song1')
p.ajouter('Song2')
assert len(p) == 2
Getitem
p = Playlist('Pop')
p.ajouter('A')
assert p[0] == 'A'

+ 0 tests cachés

Indices (3 disponibles)

solution.py