有人可以向我解释以下内容:
class C:
def __init__(self, lst=[]):
self.lst = lst
self.i = 1
def foo(self):
self.lst.append(self.i)
self.i += 1
def main():
a = C()
b = C()
a.foo()
print(a.lst, a.i)
print(b.lst, b.i)
main()
我希望输出为:
[1] 2
[] 1
因为C
的每个实例都有自己的lst
实例,但它是
[1] 2
[1] 1
在我看来不仅错误,而且不一致(i
不常见,lst
是)。咦?