Hier gibt a.x
den Variablenwert der Instanz der Klasse zurück (der Bereich ist auf das Klassenobjekt beschränkt), während A.x
den Wert der Klassenvariablen zurückgibt. Sie können überprüfen, es mag:
# create object of class A()
>>> a = A()
>>> b = A()
# same value
>>> A.x
12
>>> a.x
12
# updated a.x
>>> a.x = 5
>>> A.x # still old value
12
>>> a.x # new value
5
>>> b.x # old value
12
# updated A.x
>>> A.x = 9 # new value
>>> A.x
9
>>> a.x # old value
5
>>> b.x # new value
9
Fazit: Wenn Sie den Wert der Instanz der Klasse aktualisieren, wird die Änderung auf diese Instanz beschränkt werden. Wenn Sie jedoch den Wert der Klassenvariablen ändern, wird die Änderung für alle Instanzen übernommen, wenn die Instanz den Wert nicht explizit überschrieben hat.
In dieser Situation keine, aber Sie können den Klassennamensraum mit Zuweisung direkt auf eine Instanz überschatten. –