Problème de mise en forme de code Python
import os
import json
from constantes import DATA_DIR
class Liste(list):
def __init__(self, nom):
self.nom = nom
def ajouter(self, element):
if not isinstance(element, str):
raise ValueError("Vous ne pouvez ajouter que des chaînes de caractères!")
if element in self:
print(f"{element} est déja dans la liste." )
return False
self.append(element)
return True
def enlever(self, element):
if element in self:
self.remove(element)
return True
return False
def afficher(self):
print(f"Ma liste de {self.nom} :")
for element in self:
print(f" - {element}")
def sauvegarder(self):
chemin = os.path.join(DATA_DIR, f"{self.nom}.json")
if not os.path.exists(DATA_DIR):
os.makedirs(DATA_DIR)
with open(chemin, "w") as f:
json.dump(self, f, indent=4)
return True
Bonjour,
Techniquement, le type list n'est pas destiné à être directement étendu par héritage. Cela fonctionne en surface, mais il y a plein de petites subtilités qui ne fonctionnent pas correctement lorsqu'on hérite directement de list. A la place :
from collections import UserList
class Liste(UserList) :
...
Par ailleurs, dans ton code, tu ne tires pas du tout parti de cet héritage de list, et tu oublie d'invoquer super().__init__() dans ta méthode d'initialisation.
Inscris-toi
(c'est gratuit !)
Tu dois créer un compte pour participer aux discussions.
Créer un compte