gpt4 book ai didi

Python:deepcopy 不适用于用户定义的类?

转载 作者:太空狗 更新时间:2023-10-29 21:29:18 25 4
gpt4 key购买 nike

在下面的示例中,我希望 deepcopy 创建字段的副本,而不仅仅是复制引用。这里发生了什么,有没有简单的解决方法?

from copy import deepcopy

class Test:
field = [(1,2)]

t1 = Test()
t2 = deepcopy(t1)

t2.field[0]=(5,10)

print t1.field # [(1,2)] expected but [(5,10)] obtained
print t2.field # [(5,10)] expected

输出:

[(5, 10)]
[(5, 10)]

最佳答案

深度复制(默认情况下)仅适用于实例级别的属性 - 不适用于类级别 - 不止一个 class.attribute 没有多大意义...

将您的代码更改为:

class Test:
def __init__(self):
self.field = [(1,2)]

关于Python:deepcopy 不适用于用户定义的类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18364284/

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