我正在尝试使用 pickle 来保存自定义类;非常类似于下面的代码(尽管在类上定义了一些方法,还有更多的字典等用于数据)。但是,通常当我运行它时,pickle 然后 unpickle,我会丢失类中的所有数据,就好像我创建了一个新的空白实例一样。
import pickle
class MyClass:
VERSION = 1
some_data = {}
more_data = set()
def save(self,filename):
with open(filename, 'wb') as f:
p = pickle.Pickler(f)
p.dump(self)
def load(filename):
with open(filename,'rb') as ifile:
u = pickle.Unpickler(ifile)
obj = u.load()
return obj
我想知道这是否与泡菜类的备忘录有关,但我觉得不应该。当它不起作用时,我查看生成的文件,它看起来像这样:(显然不是可读的,但它显然不包含数据)
€c__main__ 我的课 q
无论如何,我希望这足以让某人了解这里可能发生的事情,或者看什么。