Deepcopy一个简单的Python对象

时间:2009-12-19 17:44:13

标签: python deep-copy

我有一个定义__deepcopy__方法的对象。我想要一个函数,它会通过它给出的方法对它进行深度复制而不是,但是以默认方式复制类object的对象。

我怎么能这样做?我想我可以尝试编码,但可能有很多“陷阱”我不会想到。

我这样做的原因是因为我有一个实现__deepcopy__方法的对象类,并且该方法检查某些条件,并且在某些情况下它会以某种方式对对象进行深度复制,并且在其他情况下,它将以默认的object方式进行深度复制。

1 个答案:

答案 0 :(得分:4)

你基本上需要覆盖现有的__deepcopy__方法,这意味着暂时将对象的类设置为不同的东西 - 这是否可接受主要取​​决于“__deepcopy__覆盖”是否只需影响一个,“顶级”对象(在这种情况下,kludge可能没问题),或者如果你正在复制的图表中有很多该类的对象,在这种情况下它会非常混乱。哪种情况获得?