小编典典

Python-如何避免类数据在实例之间共享?

python

我想要的是这种行为:

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。如何获得单独的实例以实现所需的行为?


阅读 651

收藏
2020-02-04

共1个答案

小编典典

class a:
    def __init__(self):
        self.list = []

在类声明中声明变量会使它们成为”class”成员,而不是实例成员。在__init__方法中声明它们可以确保在对象的每个新实例旁边创建一个新的成员实例。

2020-02-04