Python中的自定义实例unpickling:应该更新对象字典,还是替换它?

时间:2010-02-08 11:42:34

标签: python dictionary pickle

通过__setstate__定义某个类的对象应如何被打开时,我认为可以安全地进行

def __setstate__(self, dict_returned_by_pickle):
    self.__dict__.update(dict_returned_by_pickle)

当腌制状态是字典时。这就是我在answer here on stackoverflow中看到的。

但是,这是一项安全措施,以防self.__dict__在调用__setstate__时包含一些数据吗?或者它比做

更快更干净
self.__dict__ = dict_returned_by_pickle

强制旧的self.__dict__被垃圾收集?

1 个答案:

答案 0 :(得分:0)

更换它很好。这就是borg pattern的作用。

如果没有其他引用,原始字典将被垃圾收集。