0

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

  1. 不存在具有该 ID 的其他实例,因此会生成一个新实例并__setstate__应正常调用。
  2. 当该 ID 的另一个实例存在时,该对象被返回,我想避免调用__setstate__它。

请看一下这个类的定义

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

我可以想到两种通用策略来解决这个问题:

  1. 前面的答案一样,我可以定义另一个使用结果调用的函数,__getnewargs__并附加一些属性来告诉我是否运行__setstate__
  2. 如果我能分辨出是否__call__从泡菜中调用了类的方法,我也可以这样做。

我不知道是否有可能进一步干扰酸洗机械,我不想将 unpickler 子类化。

想法,建议,完全不同的解决方案?谢谢你。

4

0 回答 0