Bonjour,
J'ai un petit problème de fonctionnalité avec les property.
Voici mon code :
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é.
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
J'ai trouvé un petite astuce en rajoutant :
Mais ce n'est plus super trivial....
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 a.var = copy.copy(a.var)
Une idée ?
Merci d'avance!
Partager