TP : Étendre la classe Liste avec des méthodes dunder
TP
Programmation Orientée Objet
Instructions
Dans ce TP, vous allez étendre la classe Liste
que nous avons créée précédemment en y ajoutant des méthodes dunder (double underscore) pour implémenter des opérations de base. Cela vous permettra de comprendre comment ces méthodes spéciales permettent aux objets de se comporter comme des types natifs de Python.
Voici la classe Liste
de base :
class Liste:
def __init__(self):
self._elements = {}
self._count = 0
def append(self, element):
self._elements[self._count] = element
self._count += 1
def remove(self, valeur):
for index, element in self._elements.items():
if element == valeur:
del self._elements[index]
self._count -= 1
for i in range(index, self._count):
self._elements[i] = self._elements.pop(i + 1)
break
def pop(self, index):
if index < 0 or index >= self._count:
raise IndexError("Index hors limites")
= self._elements.pop(index)
element self._count -= 1
for i in range(index, self._count):
self._elements[i] = self._elements.pop(i + 1)
return element
def get_index(self, valeur):
for index, element in self._elements.items():
if element == valeur:
return index
return -1
Votre tâche est d’ajouter les méthodes dunder suivantes à cette classe :
__str__(self)
: Retourne une représentation en chaîne de caractères de la liste.__len__(self)
: Retourne la longueur de la liste.__getitem__(self, index)
: Permet l’accès aux éléments par index (ex:ma_liste[2]
).__setitem__(self, index, valeur)
: Permet de modifier un élément par index (ex:ma_liste[2] = 10
).__iter__(self)
: Permet d’itérer sur la liste.__add__(self, other)
: Permet d’additionner deux listes (concaténation).
Implémentation
Complétez la classe Liste
ci-dessous en ajoutant les méthodes dunder demandées :
Tests Unitaires pour vérifier votre implémentation
Exécutez les tests unitaires ci-dessous pour vérifier votre implémentation :