gpt4 book ai didi

python - 复制与深度复制 : semantics

转载 作者:太空狗 更新时间:2023-10-30 00:11:48 26 4
gpt4 key购买 nike

我的类(class)代表各种系统的状态。每个实例都有两个属性:一个是同一系统所有状态之间共享的容器,另一个是每个实例独有的容器。

状态副本应该重用“共享”属性,但创建“唯一”属性的深拷贝。这确实是唯一有意义的复制语义(很自然,状态的副本是同一系统的状态)。

我想为阅读和维护我的代码的人制造最少的惊喜。为了我的目的,我应该覆盖 __deepcopy__ 还是 __copy__

最佳答案

是否真的有必要使用复制模块来复制此类的实例?我会争辩说,而不是覆盖 __copy____deepcopy__ 你应该为你的类创建一个 copy 方法,它使用你的复制语义返回一个新对象定义。

如果出于某种一致性原因您确实需要使用复制模块,那么在我看来 __deepcopy__ 更合适。如果所有实例共享一个容器是该类的定义行为,那么可以合理地假设 __deepcopy__ 的实现会遵守这一点。

关于python - 复制与深度复制 : semantics,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10253855/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com