Le code suivant me surprend un peu.
Ceci donne à la sortie :
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 #!/usr/bin/env python #coding=utf-8 class test(object): def __init__(self, text): self.text = text self.etrange = 'ok' def __str(self): return self.text dicoClass = {} dicoClass['o'] = test('oo') a = dicoClass['o'] a.etrange = 'testons' b = dicoClass['o'] print "b.etrange == a.etrange" print b.etrange dicoChaine = {} dicoChaine['o'] = 'oo' c = dicoChaine['o'] c = 'non' d = dicoChaine['o'] print "d <> c" print d
Ce que je voudrais c'est avoir pour b une nouvelle instance qui aura bien la valeur par défaut de b .etrange. Comment faire sachant que j'ai absoluement besoin de travailler avec des dictionnaires de classes ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 b.etrange == a.etrange testons d <> c oo
Au passage, pourquoi ce comportement sinueux de Python ?
Partager