Bonjour,

Dans une classe, je choisis d'encapsuler un variable (dt). Je prépare un setter, un getter et une property pour donner accès à cette variable.
Je prépare également un __repr__ pour autoriser un print des objets instanciés.

Ensuite, j'instancie ma classe et je fais un print de mon nouvel objet => dt = 1
je modifie mon objet de la manière suivante : monObjet.dt = 2

Dans la fenêtre de commande, si je tape monObjet.dt j'obtiens 2mais si je tape print monObjet, j'obtiens 1

Quelqu'un aurait un idée ?

Voici le 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
19
20
21
22
23
24
25
26
 
class bidon:
 
    def __init__ (self, dt=1):
        self.__dt=dt
 
    def __repr__(self):
        toPrint  = "dt [s] :" + str(self.__dt)
        return toPrint
 
    def __set_dt(self, dt):
        self.__dt = float(dt)
 
    def __get_dt(self):
        return self.__dt    
 
    dt = property(__get_dt, __set_dt, None, None)
 
 
if __name__ == "__main__":
    toto = bidon()
    print toto
 
    toto.dt=2
    print toto.dt
    print toto