簡體   English   中英

嘗試腌制對象實例會引發腌制錯誤

[英]Trying to pickle object instance throws pickling error

我正在嘗試腌制類實例,請參閱http://stefaanlippens.net/python-pickling-and-dealing-with-attributeerror-module-object-has-no-attribute-thing.html,但是給了我

try.py

import pickle

class abc(object):
      def __init__(self):
         self.a = 10
      def save(self):
         pickle.dump(self,open("try.pkl","wb"))
if __name__ == '__main__':
      a = abc()
      abc.__module__ = "try"
      a.save()

pickle.PicklingError: Can't pickle <class 'try.abc'>: it's not the same object as try.abc

我在這里犯錯了嗎? 是否有其他解決方案來腌制對象以用於獨立用途

如果您拿走了abc.__module__ = "try"一切正常。

import pickle

class abc(object):
      def __init__(self):
         self.a = 10
      def save(self):
         pickle.dump(self,open("try.pkl","wb"))
if __name__ == '__main__':
      a = abc()
      a.save()

      # proof it worked
      with open('try.pkl','rb') as pkl_file:
          b = pickle.load(pkl_file)
      print(b.a)

我已經在代碼末尾添加了代碼以重新加載數據並打印它以表明它是成功的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM