是否可以在不复制引用的情况下在 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/