Bonjour à tous,

Je m'initie à l'utilisation de classes en python, et j'en suis aux Propriétés.

Voici ma classe :
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
19
20
21
22
class Personne:
    objets_crees = 0
 
    def __init__(self, nom, prenom,age):
        Personne.objets_crees+=1
 
        self.nom = nom
        self.prenom = prenom
        self.age = age
        self._lieu_residence = "Paris"
 
 
    def get_lieu_residence (self):
        print ("Accès au lieu de résidence : {}".format(self._lieu_residence))
    def set_lieu_residence (self, lieu):
        print ("Modification du lieu de résidence : {}".format(lieu))
        self._lieu_residence = lieu
 
    lieu_residence = property(get_lieu_residence, set_lieu_residence)
 
    def __repr__(self):
        return ("Classe 'Personne' : {}".format(self.__dict__))
Voici le Main qui l'appelle :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
from Personne import Personne
 
if __name__ == "__main__":
 
    pimousse = Personne("Zerath","Benjamin",26)
    print pimousse.age
    print Personne.objets_crees
    pimousse.lieu_residence
 
    #pimousse.set_lieu_residence("Alfortville")
    pimousse.lieu_residence = "Alfortville"
 
    pimousse.lieu_residence
    print pimousse
Et voici ce qui s'affiche en console :
26
1
Accès au lieu de résidence : Paris
Classe 'Personne' : {'lieu_residence': 'Alfortville', 'nom': 'Zerath', 'age': 26, '_lieu_residence': 'Paris', 'prenom': 'Benjamin'}
Et j'en viens à mon problème : On peut voir que le premier appel à "pimousse.lieu_residence" à la ligne 8 du Main réagit correctement en appelant la propriété que j'ai donnée, et donc appel le get. Pourtant à mon second appel, quand je cherche à appeler le set (ligne 11), la propriété est ignorée, et l'attribut "lieu_residence" apparaît, faisaint ainsi perdre la propriété, et l'utilité du getter/setter.

J'ai sûrement mal fait quelque chose, mais quoi ?
Note : si j'appelle pimousse.set_lieu_residence("Alfortville"), je n'ai aucun souci.


Merci d'avance.