gpt4 book ai didi

python - 保存到文件并加载 python 类的实例及其属性

转载 作者:行者123 更新时间:2023-12-01 05:42:19 26 4
gpt4 key购买 nike

我正在使用 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,如果有,则暂停计算和调用 OtherClass 实例)。现在,如果我这样做,我可以加载 mydata,但它不再具有 mydata.info 对象。我的理解是这是pickle有意为之的一部分,但是有没有办法完全保存mydata以便我以后可以使用它?

最佳答案

您没有对已加载的数据执行任何操作。

class MyClass():
...
@staticmethod
def unpickle():
with file('test_file', 'rb') as f:
return pickle.load(f)

data = MyClass.unpickle()

关于python - 保存到文件并加载 python 类的实例及其属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17219481/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com