gpt4 book ai didi

python - 防止成员对象引用同一个列表

转载 作者:太空宇宙 更新时间:2023-11-04 07:44:44 24 4
gpt4 key购买 nike

这应该很简单......

class Object:
x = 0
y = []

a = Object()
b = Object()

a.x = 1
b.x = 2
print a.x, b.x
# output: 1 2
# works as expected

a.y.append(3)
b.y.append(4)
print a.y, b.y
# output: [3, 4] [3, 4]
# same list is referenced how to fix?
# desired output: [3] [4]

据我所知,a.yb.y 引用同一个列表。我怎样才能让他们分开?最好不要添加 __init__ 方法。

最佳答案

当您定义类时,您只创建了一次 y 的值。要为 y 的每个实例分配不同的列表,您确实需要一个 init 函数。只需将 self.y = [] 放入 __init__ 中,它就会按预期工作。

关于python - 防止成员对象引用同一个列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10437559/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com