gpt4 book ai didi

Python 防止复制对象作为引用

转载 作者:太空狗 更新时间:2023-10-29 17:54:30 26 4
gpt4 key购买 nike

是否可以在不复制引用的情况下在 Python 中复制对象?

比如我定义一个类

class SomeClass:
def __init__(self):
self.value = 0

然后创建实例

someObject = SomeClass()
someObject.value = 12

然后我尝试将它复制到另一个实例:

anotherObject = someObject

并尝试修改属性,

anotherObject.value = 10

原始属性被修改:

print someObject.value #prints 10

有什么办法可以防止这种情况发生吗?澄清一下,我希望 anotherObject.value 包含 10,但我希望 someObject.value 仍包含原始 12。这在 Python 中可行吗?

提前致谢。

最佳答案

问题是,

anotherObject = someObject

您不复制对象,而只是添加另一个对它的引用。要复制一个对象,试试这个:

from copy import copy

anotherObject = copy(someObject)

关于Python 防止复制对象作为引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19210971/

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