深拷贝简单的Python对象
我有一个对象,它定义了一个叫做 __deepcopy__
的方法。我想要一个函数,可以用默认的方式来复制这个对象,而不是用它自己定义的方法。
我该怎么做呢?我觉得我可以尝试写代码,但可能会遇到很多我没想到的问题。
我这么做的原因是因为我有一个对象类,它实现了 __deepcopy__
方法,这个方法会检查一些条件。在某些情况下,它会以特定的方式复制对象,而在其他情况下,它会用默认的 object
方式来复制。
1 个回答
4
你基本上需要重写现有的 __deepcopy__
方法,这意味着你要暂时把这个对象的类改成其他的东西。这样做是否合适,主要取决于你想要的“__deepcopy__
重写”是只影响一个“顶层”的对象(如果是这样,这种做法可能还可以接受),还是说在你要复制的结构中有很多这种类的对象,那样的话就会变得很麻烦。你是哪种情况呢?