我们什么时候应该实施“__deepcopy__”?
When should we implement `__deepcopy__`?
我想知道interesting/necessary在什么情况下重新定义__deepcopy__
?实际上,此方法已经以执行对象的深层复制的方式实现。
那么以不同的方式重新定义它有什么意义呢?
如果对象图中存在循环引用,事情就会变得棘手。内置 __deepcopy__
实际上会处理这些,但您可能想要自定义方法。
此外,有些对象(您调用 deepcopy
的原始对象或其参考图中的对象)根本无法进行深度复制,例如文件句柄,同样,您可能需要自己的对象方法。
我想知道interesting/necessary在什么情况下重新定义__deepcopy__
?实际上,此方法已经以执行对象的深层复制的方式实现。
那么以不同的方式重新定义它有什么意义呢?
如果对象图中存在循环引用,事情就会变得棘手。内置 __deepcopy__
实际上会处理这些,但您可能想要自定义方法。
此外,有些对象(您调用 deepcopy
的原始对象或其参考图中的对象)根本无法进行深度复制,例如文件句柄,同样,您可能需要自己的对象方法。