1

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

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

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

4

1 回答 1

4

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

于 2009-12-19T17:50:46.453 回答