在Python中如何避免实例直接共享数据 Python中的元类 在Python中 __str__和__repr__之间的区别 如何避免在实例之间共享类数据? 我想要的是这种行为: 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。如何获得单独的实例来实现我想要的行为? 你可以这样 class a: def __init__(self): self.list = [] 声明类声明中的变量使它们成为“类”成员而不是实例成员。在__init__方法中声明它们可确保在对象的每个新实例旁边创建成员的新实例,这是您正在寻找的行为。 Python中的元类 在Python中 __str__和__repr__之间的区别