Bonjour,

J'ai un petit problème de fonctionnalité avec les property.

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
19
20
21
22
23
 
class Test2(object):
    def __init__(self,z=0):
        self.z = z
 
class Test(object):
    def __init__(self):
        self._var = Test2()
 
    def _get_var(self):
        return self._var
 
    def _set_var(self,var):
        self._var = var
        self.Fonction()
 
    var = property(_get_var,_set_var)
 
    def Fonction(self):
        print "Fonction"
 
a = Test()
a.var.z = 5
Ce que je souhaite, c'est que la fonction "Fonction" soit appelée lorsque je modifie a.var.z. Pas de soucis lorsque var est une simple variable, mais lorsque c'est un objet, cela ne marche plus vu que l'objet en soit n'est pas modifié.

J'ai trouvé un petite astuce en rajoutant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
a.var = copy.copy(a.var)
Mais ce n'est plus super trivial....

Une idée ?

Merci d'avance!