我试图咸菜类的实例,指的是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是的,我也怀疑那个黑客不能再工作了。然而,我的问题是,我需要一个独立的方式来腌制类对象,它是实例。 –