Wenn ich eine einfache KlasseSind Klassenvariablen veränderbar?
class someClass():
var = 1
x = someClass()
someClass.var = 2
x.var
gleich machen Dies wird definieren 2. Dies ist verwirrend, weil normalerweise so etwas wie dieses, wie:
a = 1
b = a
a = 2
b intakt als b==1
verlassen wird. Warum ist das bei Klassenvariablen nicht das Gleiche? Wo ist der Unterschied? Kann alle Klassenvariablen veränderbar aufrufen? In gewisser Weise funktionieren die Klassenvariablen eher wie das Zuweisen einer Liste zu a=[1]
und tun a[0]=2
.
Grundsätzlich ist das Problem, wie ist x.var
acessing someClass.var muss es etwas anderes als dann verwendet wird, wenn zwei Variablen in Python gleich gesetzt sind. Was ist los?
jetzt gesetzt 'x.var = 3' und sehen, was mit' someClass.var' passiert –
Ich weiß, aber das ist nicht der Punkt – pindakaas
Nein, das * ist * der Punkt. Im Wesentlichen, wenn Sie 'SomeClass.var' und' someInstance.var' ** sind nicht unbedingt das gleiche Ding **. –