私はPythonクラスで遊んでいましたが、静的クラス変数と思われる2つの変数が変更されたときの動作が異なります。Pythonクラス変数int vs array
ここでは何が起こっていますか?私の最初の本能は、何かトリッキーなことが参考になるということです。
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)
は、pythonで注意する同様のケースです。http://stackoverflow.com/questions/101268/hidden-features-of-python#113198 – qwwqwwq