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

发布于 2021-02-02 23:24:53

我想要的是这种行为:

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

关注者
0
被浏览
303
1 个回答
  • 面试哥
    面试哥 2021-02-02
    为面试而生,有面试问题,就找面试哥。
    class a:
        def __init__(self):
            self.list = []
    

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



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看