【发布时间】:2019-11-28 11:51:53
【问题描述】:
我想知道在什么情况下有趣/有必要重新定义__deepcopy__?实际上,这种方法已经以执行对象深度复制的方式实现。
那么重新定义不同的意义何在?
【问题讨论】:
-
甚至不知道这种方法。我定义的时候确实是
copy.deepcopy使用的,但是好像没有默认定义。
标签: python python-3.x deep-copy
我想知道在什么情况下有趣/有必要重新定义__deepcopy__?实际上,这种方法已经以执行对象深度复制的方式实现。
那么重新定义不同的意义何在?
【问题讨论】:
copy.deepcopy使用的,但是好像没有默认定义。
标签: python python-3.x deep-copy
如果对象图中存在循环引用,事情就会变得棘手。内置的 __deepcopy__ 实际上确实处理了这些,但您可能需要自定义方法。
此外,有些对象(您在其上调用 deepcopy 的原始对象或在其参考图中的一个对象)根本无法进行深度复制,例如文件句柄,同样,您可能需要自己的方法。
【讨论】: