Grałem z klasami Python i dotarłem do następującego przykładu, w którym dwie zmienne, które wydają się statycznymi zmiennymi klasy, mają inne zachowanie po modyfikacji.Python class variable int vs array
Co tu się dzieje? Moim pierwszym instynktem jest to, że coś trudnego dzieje się z referencjami.
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)
Oto podobny przypadek, na który warto zwrócić uwagę w pythonie http://stackoverflow.com/questions/101268/hidden-features-of-python#113198 – qwwqwwq