【问题标题】:When should we implement `__deepcopy__`?我们什么时候应该实现`__deepcopy__`?
【发布时间】:2019-11-28 11:51:53
【问题描述】:

我想知道在什么情况下有趣/有必要重新定义__deepcopy__?实际上,这种方法已经以执行对象深度复制的方式实现。

那么重新定义不同的意义何在?

【问题讨论】:

  • 甚至不知道这种方法。我定义的时候确实是copy.deepcopy使用的,但是好像没有默认定义。

标签: python python-3.x deep-copy


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-09-09
    • 2014-01-25
    • 2021-09-07
    • 2020-06-03
    • 2011-07-04
    • 2016-11-11
    • 2011-03-21
    • 2017-09-13
    相关资源
    最近更新 更多