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 : 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
 
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 :

<__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