我正在使用python进行数据分析,并希望找到一种很好的方法来将类的实例保存到文件中,以便以后可以在维护其属性值的情况下重新加载它。特别是,这个类的一个实例将加载其他类的实例对象,然后进行需要一段时间才能完成的处理器密集型比较。
例如:import pickle
class MyClass():
def __init__(self):
self.info = OtherClass(option=1)
def pickle(self):
f = file('test_file', 'wb')
pickle.dump(self, f, pickle.HIGHEST_PROTOCOL)
f.close()
def unpickle(self):
f = file('test_file', 'rb')
pickle.load(f)
f.close()
class OtherClass():
def __init__(self, option):
self.property = option * 2
mydata = MyClass(option=5)
mydata.pickle()
然后导入此模块并运行mydata.unpickle()以取回mydata(我还有一个选项,用于查找文件是否以前被pickle过,如果以前被pickle过,则暂停计算和调用OtherClass实例)。
现在,如果我这样做,我可以加载mydata,但它不再具有mydata.info对象。我的理解是这是pickle的一部分,但是有没有一种方法可以完全保存我的数据,以便我以后使用它?