我正在玩Python类,并得出以下示例,其中两个看似静态类变量的变量在修改时具有不同的行为.
这里发生了什么?我的第一直觉是引用了一些棘手的东西.
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)
Run Code Online (Sandbox Code Playgroud)