我正在尝试挑选类实例,引用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
我在这里弄错了吗? 对于独立目的而言,pickle对象是否有不同的解决方案
答案 0 :(得分:0)
如果你带走了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)
我在最后添加了代码以重新加载数据并打印它以显示它是成功的。