2010-02-08 27 views
1

當如何定義某一類對象應該通過__setstate__被拆封,我推測,它是安全的在Python中取消自定義實例:應該更新對象字典還是替換它OK?

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__進行垃圾回收清潔?

回答

0

代替它很好。這就是borg pattern所做的。

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

相關問題