Problème de variable statique
Bonsoir,
j'ai besoin d'une variable de classe statique qui contient la première instance de la classe. J'ai naïvement fait ça :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
class A:
master = None
def __init__(self, l):
if self.master:
print str(self) + " n'est pas maitre"
self.is_master = False
else:
print str(self) + " est maitre"
self.master = self
self.is_master = True
self.l = l
test = A([A([]), A([])]) |
Contrairement à ce que j'attendais, les trois instances sont maître :
Citation:
<__main__.A instance at 0xb77264cc> est maitre
<__main__.A instance at 0xb77264ec> est maitre
<__main__.A instance at 0xb77265cc> est maitre
Si quelqu'un peut m'expliquer pourquoi, et comment résoudre mon problème (si possible sans utiliser une variable globale), ça serait sympa :)
ClassMethod et StaticMethod
Cherche du coté des classmethod et staticmethod.
voir dans cette discussion.
Z