Correction TP IV
class Adresse(object):
def __init__(self, rue, ville, code_postal):
self._rue = rue
self._ville = ville
self._code_postal = code_postal
def __str__(self):
return '<Adresse: ' + str(self._rue) + ', ' + str(self._ville) + ', ' + str(self._code_postal) + '>'
def rue(self):
return self._rue
def ville(self):
return self._ville
def code_postal(self):
return self._code_postal
class Personne(object):
def __init__(self, nom, sexe, adresses):
self._nom = nom
self._sexe = sexe
self._adresses = adresses
def __str__(self):
return '<Personne: ' + str(self._nom) + ', ' + str(self._sexe) + ', ' + 'nbr adresses: ' + str(len(self._adresses)) + '>'
def nom(self):
return self._nom
def sexe(self):
return self._sexe
def adresses(self):
return self._adresses
class Liste_personnes(object):
def __init__(self, personnes):
self._personnes = personnes
def __str__(self):
return '<Liste_personnes: ' + str(len(self._personnes)) + '>'
def personnes(self):
return self._personnes
def trouver_par_nom(self, nom):
for personne in self._personnes:
if nom == personne.nom():
return personne
return
def existe_code_postal(self, code_postal):
for personne in self._personnes:
for adresse in personne.adresses():
if code_postal == adresse.code_postal():
return True
return False
def nombre_personne_ville(self, ville):
nbr_personne = 0
for personne in self._personnes:
for adresse in personne.adresses():
if adresse.ville() == ville:
nbr_personne += 1
return nbr_personne
def edit_personne_nom(self, nom, nouveau_nom):
for personne in self._personnes:
if personne.nom() == nom:
personne._nom = nouveau_nom
def edit_personne_ville(self, nom, nouvelle_adresse):
for personne in self._personnes:
if personne.nom() == nom:
personne._adresses.append(nouvelle_adresse)
def __getitem__(self, key):
return self._personnes[key]
def __len__(self):
return len(self._personnes)
def __iter__(self):
return iter(self._personnes)
a = Adresse('rue', 'ville', 'code_postal')
adresses = [a, a, a, a]
p = Personne('n', 's', adresses)
p2 = Personne('n2', 's2', adresses)
p3 = Personne('n3', 's3', adresses)
personnes = [p, p2, p3]
l = Liste_personnes(personnes)
l.edit_personne_nom('n2', 'nouveau_nom')
l.edit_personne_ville('nouveau_nom', Adresse('newRue', 'newVille', 'newCP'))
for i in range(0, len(l)):
print(l[i])
for i in l:
print(i)