在unpickling中有条件地使用__setstate__

时间:2013-02-22 12:13:17

标签: python pickle

所以我有一个类根据ID记住它的实例。解开这样的物体时,有两种情况我想处理:

  1. 没有其他具有该ID的实例,因此会生成一个新实例,并且应该正常调用__setstate__
  2. 当该ID的另一个实例存在时,将返回该对象,我希望避免在其上调用__setstate__
  3. 请查看this class definition

    您会注意到,目前我只更新评估为 False 的属性作为解决方法。

    我可以想出两个解决这个问题的一般策略:

    1. this previous answer一样,我可以使用__getnewargs__的结果定义另一个调用的函数,并附加一些属性,告诉我是否运行__setstate__
    2. 如果我能分辨出这个班级'从pickle中调用__call__方法我可以这样做。
    3. 我不知道是否有可能进一步干扰酸洗机械,我不想将分类器子类化。

      思考,建议,完全不同的解决方案?谢谢。

0 个答案:

没有答案