我想要的是这种行为:
class a: list = [] x = a() y = a() x.list.append(1) y.list.append(2) x.list.append(3) y.list.append(4) print(x.list) # prints [1, 3] print(y.list) # prints [2, 4]
当然,当我打印时真正发生的是:
print(x.list) # prints [1, 2, 3, 4] print(y.list) # prints [1, 2, 3, 4]
显然,他们在课堂上共享数据a。如何获得单独的实例来实现我想要的行为?
a
你要这个:
class a: def __init__(self): self.list = []
在类声明中声明变量使它们成为“类”成员而不是实例成员。在方法中声明它们__init__可确保在对象的每个新实例旁边创建成员的新实例,这是您正在寻找的行为。
__init__