我試圖鹹菜類的實例,指的是http://stefaanlippens.net/python-pickling-and-dealing-with-attributeerror-module-object-has-no-attribute-thing.html 但是給我試圖泡菜對象實例拋出酸洗錯誤
try.py
我在這裏犯了一個錯誤? 是否有一個不同的解決方案,以泡菜對象爲獨立的目的
我試圖鹹菜類的實例,指的是http://stefaanlippens.net/python-pickling-and-dealing-with-attributeerror-module-object-has-no-attribute-thing.html 但是給我試圖泡菜對象實例拋出酸洗錯誤
try.py
我在這裏犯了一個錯誤? 是否有一個不同的解決方案,以泡菜對象爲獨立的目的
如果你拿走你的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)
我在最後添加了代碼來重新加載數據並打印它以顯示它是成功的。
嘿,感謝您的回覆,是的,它會工作,但是當你加載try.pkl而不導入try.py在一個單獨的文件,它不會加載,並會拋出屬性錯誤。 - Dwipam Katariya –
這似乎是一個給定的,如果你不導入類,你不能創建它的實例,這是你從泡菜創建它時基本上正在做的。什麼是阻止導入課程的建築/包裝障礙? – Lost
你爲什麼要用'abc .__ module__'搞定? – user2357112
你正在看的文章依賴於一個尷尬的黑客,不再工作。不要用'__module__'擰緊;導入'try'並使用'try.abc'而不是'abc'(並且詛咒Python的尷尬'__main__'系統)。 – user2357112
@ user2357112是的,我也懷疑那個黑客不能再工作了。然而,我的問題是,我需要一個獨立的方式來醃製類對象,它是實例。 –