深拷贝简单的Python对象

1 投票
1 回答
862 浏览
提问于 2025-04-15 17:12

我有一个对象,它定义了一个叫做 __deepcopy__ 的方法。我想要一个函数,可以用默认的方式来复制这个对象,而不是用它自己定义的方法。

我该怎么做呢?我觉得我可以尝试写代码,但可能会遇到很多我没想到的问题。

我这么做的原因是因为我有一个对象类,它实现了 __deepcopy__ 方法,这个方法会检查一些条件。在某些情况下,它会以特定的方式复制对象,而在其他情况下,它会用默认的 object 方式来复制。

1 个回答

4

你基本上需要重写现有的 __deepcopy__ 方法,这意味着你要暂时把这个对象的类改成其他的东西。这样做是否合适,主要取决于你想要的“__deepcopy__ 重写”是只影响一个“顶层”的对象(如果是这样,这种做法可能还可以接受),还是说在你要复制的结构中有很多这种类的对象,那样的话就会变得很麻烦。你是哪种情况呢?

撰写回答