- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
在下面的示例中,我希望 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/
我从类 Stack 创建了 2 个类实例(stack0、stack1)类Stack中有一个类变量,它有另一个堆栈地址(引用),即stack0.other_stack是stack1,stack1.oth
关闭。这个问题是not reproducible or was caused by typos .它目前不接受答案。 这个问题是由于错别字或无法再重现的问题引起的。虽然类似的问题可能是on-topi
任何人都知道是否有一种简单或已知的方法来编写可以在任何类型的数组(即锯齿数组、多维数组等)上运行的深度复制方法?我打算把它写成一个扩展方法。 框架中没有默认方法来执行此操作,对吧?我很惊讶找不到一个。
我有一个类,根据设计,它必须遵循单例 模式。所以我继续使用 元类 实现它。一切都很好,直到报告了一个错误,总而言之,该错误说 deepcopy-ied 实例的我的 singleton 类不是相同的实例
我这里有一个 python 代码片段: import copy class Foo(object): bar = dict() def __init__(self, bar):
是否可以仅深拷贝特定类型的对象,例如列表、字典或元组 示例:[[1, ], ] 我想深度复制第一个列表(当然还有.. 1),但不是SomeObj或 OtherObj .那些应该作为引用。 是否可以使用
我想知道 python 解释器在对可变对象进行深度复制时是否应用写时复制策略。 此外,我想知道深度复制是否也在非可变对象上执行(不过这对我来说似乎很奇怪) 最佳答案 它不进行写时复制。 它不会对一些内
在下面的示例中,我希望 deepcopy 创建字段的副本,而不仅仅是复制引用。这里发生了什么,有没有简单的解决方法? from copy import deepcopy class Test:
我在 Python 中有一个包含大约 1000 个对象(行星系统 + 恒星 + 行星)的游戏状态,我需要复制它并在请求时对其应用一堆转换。但是,大约 1 个请求/秒,这是 taking up 24.6
我希望制作包含类对象列表的类对象的深拷贝,每个类对象都有自己的一组内容。对象不包含比整数和列表更令人兴奋的东西(没有字典,没有等待生成的生成器等)。我在一个循环中对 500-800 个对象执行深度复制
我正在阅读有关 Hiberante 中所谓的 UserType 的内容,它声明了 deepCopy(Object) 方法。作者建议我们对 immutable 类使用以下实现: Because Mone
我正在尝试初始化表示 3x3 数组的列表列表: import copy m = copy.deepcopy(3*[3*[0]]) print(m) m[1][2] = 100 print(m) 输出是
我的问题类似于this one但更多的参与。假设我有一个表 A,id 为 idA,另一个表 B 有 idB 和外键 idA。我想复制 A 的所有条目,包括 B 中的相应条目。例如,如果我在开头有以下表
我正在开发一个实时应用程序,有时我需要为始终使用相同数据的新对象创建实例。 首先,我只是将它们实例化,但后来我意识到使用 copy.deepcopy 可能会更快。现在,我发现有人说 deepcopy
我已经在很多需要它的类中使用这种复制方法很长一段时间了。 class population (list): def __init__ (self): pass def copy(self):
这个问题在这里已经有了答案: How to copy a class? (9 个回答) 关闭 8 年前。 我一直在玩 deepcopy 函数和 copy 函数,我对它们都遇到了同样的问题。这就像副本
在我的项目中,我让用户使用 FileReference 类选择图片。然后我使用 load() 函数将这些图片加载到它们的 .data 属性中。在此之后,我执行一些本地操作并将它们发送到服务器。 我想要
有时我需要深度复制一个对象,有时它是一个字典对象,所以我使用 ** 运算符来轻松复制它,但我一直想知道深度复制在某种意义上是否有任何不同或效率。哪一个在内存占用、cpu 时间方面更有效,并且 deep
我想为同一对象复制另一个字段中的某些字段,如本演示所示: var customers = { apple: { papa: { en: "cool"
我很难让我的一些代码工作。代码以 SwingWorker 开头并得到结果。我无法将数据传递给工作人员并从工作人员那里获取信息。 我要传递的数据由我自己定义的类的对象组成。例如,我有两个 Item和 I
我是一名优秀的程序员,十分优秀!