Bonjour,
Je m'inscris aujourd'hui car en temps normal, je trouve des sujets de problèmes similaires afin de résoudre les miens. Cependant, je ne trouve pas de solution à mon problème. (peut-être que j'ai mal cherché car je ne pense pas être le premier avec ce probleme)
J'ai fait un petit code rapide afin de rendre compte de mon probleme.
(le probleme porte sur un projet plus conséquent, mais il est identique)
classe mere :
classes filles :
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
27 class mere(object): _num=0 __default_params = { "num" : "", "nom" : "", "prenom": "", "type" : ""} __num = None __nom = None __prenom = None __type = None def __init__(self,nom,prenom,type): aux = {"num":self._num,"nom":nom,"prenom":prenom,"type":type} self.__default_params.update(aux) self.__num = self._num self.__nom = nom self.__prenom = prenom self.__type = type def pr(self): print self.__default_params, print self.__nom, print self.__num, print self.__prenom, print self.__type
et mon main :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 from mere import mere class fille1(mere): _num = "1" class fille2(mere): _num = "2"
le resultat obtenu :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 from fille import fille1 from fille import fille2 if __name__ == '__main__': f1 = fille1("name1","firstname1","type1") f2 = fille2("name2","firstname2","type2") f1.pr() f2.pr()
Voila, comme vous pouvez le voir, les attributs "normaux" sont bons.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 {'nom': 'name2', 'prenom': 'firstname2', 'num': '2', 'type': 'type2'} name1 1 firstname1 type1 {'nom': 'name2', 'prenom': 'firstname2', 'num': '2', 'type': 'type2'} name2 2 firstname2 type2
Par contre, le dictionnaire est toujours celui créé par la derniere instance créée.
Quelqu'un aurait-il une idée/solution d'où vient le problème?
Merci d'avance
Partager