我有一个定义__deepcopy__
方法的对象。我想要一个函数,它会通过它给出的方法对它进行深度复制而不是,但是以默认方式复制类object
的对象。
我怎么能这样做?我想我可以尝试编码,但可能有很多“陷阱”我不会想到。
我这样做的原因是因为我有一个实现__deepcopy__
方法的对象类,并且该方法检查某些条件,并且在某些情况下它会以某种方式对对象进行深度复制,并且在其他情况下,它将以默认的object
方式进行深度复制。
答案 0 :(得分:4)
你基本上需要覆盖现有的__deepcopy__
方法,这意味着暂时将对象的类设置为不同的东西 - 这是否可接受主要取决于“__deepcopy__
覆盖”是否只需影响一个,“顶级”对象(在这种情况下,kludge可能没问题),或者如果你正在复制的图表中有很多该类的对象,在这种情况下它会非常混乱。哪种情况获得?