我们什么时候应该实施“__deepcopy__”?

When should we implement `__deepcopy__`?

我想知道interesting/necessary在什么情况下重新定义__deepcopy__?实际上,此方法已经以执行对象的深层复制的方式实现。

那么以不同的方式重新定义它有什么意义呢?

如果对象图中存在循环引用,事情就会变得棘手。内置 __deepcopy__ 实际上会处理这些,但您可能想要自定义方法。

此外,有些对象(您调用 deepcopy 的原始对象或其参考图中的对象)根本无法进行深度复制,例如文件句柄,同样,您可能需要自己的对象方法。