Python 防止复制对象作为引用

标签 python

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

相关文章:

python - 在python中创建具有不同颜色的不同组的条形图

python - 如何发送给多个收件人

Python:根据另一个列值从DataFrame中删除重复项

python - 语法错误看不见的Python 3.4.4

python - 在 seaborn 中用科学记数法制作颜色条

python - Boost Python用默认参数包装静态成员函数重载

python - Bokeh 悬停工具 - 在自定义 html 中格式化日期变量

python - 如何在网页中显示excel文件的值

python - Django的ImageField中如何重命名当前,清除和更改标签

python - Cython 中的 C++ 指针