Zmienna klasy Python int vs array
Bawiłem się klasami Pythona i doszedłem do następującego przykładu, w którym dwie zmienne, które wydają się być statycznymi zmiennymi klasowymi, mają inne zachowanie po zmodyfikowaniu.
Co tu się dzieje? Moim pierwszym instynktem jest to, że dzieje się coś trudnego z odniesieniami.
class Foo:
a = []
n = 0
def bar(self):
self.a.append('foo')
self.n += 1
x = Foo()
print x.a, x.n ([] 0)
x.bar()
print x.a, x.n (['foo', 1])
y = Foo()
print y.a, y.n (['foo', 0])
y.bar()
print y.a, y.n (['foo', 'foo'], 1)