Bonjour,
J'ai un problème avec la méthode mutateur de python.
J'ai crée une classe que j'ai définit : Personne, ainsi deux méthodes : get_lieu_residence, set_lieu_residence pour avoir que j'ai bien compris le principe d'encapsulation dans python ou non.
Voici mon code :
Alors quand je vais crée mon objet que j'ai appelé Moi de cette façon :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 class Personne: def __init__(self, nom, prenom): self.nom=nom self.prenom=prenom self.age=27 self._lieu_residence='Alger' def _get_lieu_residence(self): print("On accède à l'attribut lieu_residence !") return self._lieu_residence def _set_lieu_residence(self, nouvelle_residence): print("Attention, il semble que {} déménage à {}.".format(self.prenom, nouvelle_residence)) self._lieu_residence = nouvelle_residence lieu_residence = property(_get_lieu_residence, _set_lieu_residence)
Et ainsi, si je fais :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 if __name__=='__main__': Moi = Personne('Hichem', 'Hichem') print ("Mes cordonnées sont :\n Nom : {}, Prenom : {}, Age : {}".format(Moi.nom, Moi.prenom, Moi.age))
Je trouve pas que le programme a exécuté la méthode set_lieu_residence de mon objet car je vois pas le print
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Moi.lieu_residence="Paris" print (Moi.lieu_residence)
"Attention, il semble que Hichem déménage à Paris
Merci d'avance.
Partager