多个列表引用同一个实例

时间:2015-06-03 17:46:17

标签: python

有人可以向我解释以下内容:

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是)。咦?

0 个答案:

没有答案