gpt4 book ai didi

python - 我的深层复制在这种情况下不起作用

转载 作者:行者123 更新时间:2023-11-30 23:12:36 25 4
gpt4 key购买 nike

据我所知,copy.deepcopy复制目标对象中包含的对象。

但是我的代码在这种情况下不起作用。

import copy

class MyClass(object):
list_value = [1, 2, 3, 4, 5]
def __init__(self, name):
self.name = name

a = MyClass('a')
b = copy.deepcopy(a)

a.list_value[0] = 10

print a.list_value
print b.list_value

输出显示 b 实例的 list_valuealist_value 相同。

[10, 2, 3, 4, 5]

[10, 2, 3, 4, 5]

我期望只有 alist_value 发生变化。

关于深度复制,我有什么遗漏的地方吗?

最佳答案

list_valueclass attributeMyClass 类的所有对象实例共享。因此,即使您指定 a.list_value[0]ablist_value 也是相同的。最好更改构造函数以将其添加为特定对象实例的属性:

 def __init__(self, name):
self.name = name
self.list_value = [1, 2, 3, 4, 5]

关于python - 我的深层复制在这种情况下不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29743252/

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