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 :

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)
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
 
if __name__=='__main__':
 
    Moi = Personne('Hichem', 'Hichem')
    print ("Mes cordonnées sont :\n Nom : {}, Prenom : {}, Age : {}".format(Moi.nom, Moi.prenom, Moi.age))
Et ainsi, si je fais :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
    Moi.lieu_residence="Paris"
    print (Moi.lieu_residence)
Je trouve pas que le programme a exécuté la méthode set_lieu_residence de mon objet car je vois pas le print

"Attention, il semble que Hichem déménage à Paris

Merci d'avance.