如何Pickle自己?
发布于 2021-01-29 17:53:38
我希望我的班级实现保存和加载功能,这些功能只是对班级进行Pickle。但是显然您不能以以下方式使用“自我”。你该怎么做?
self = cPickle.load(f)
cPickle.dump(self,f,2)
关注者
0
被浏览
53
1 个回答
-
这就是我最终要做的。更新
__dict__
方法是,我们保留我添加到类中的所有新成员变量,并仅更新上次腌制对象时存在的成员变量。在类本身内部维护保存和加载代码时,这似乎是最简单的,因此调用代码仅执行object.save()。def load(self): f = open(self.filename, 'rb') tmp_dict = cPickle.load(f) f.close() self.__dict__.update(tmp_dict) def save(self): f = open(self.filename, 'wb') cPickle.dump(self.__dict__, f, 2) f.close()