我的课程初始化需要一些时间(大约一个小时)。但结果是四个小长度的数组。有没有办法将结果保存在硬盘驱动器上并加载它,如果类是由相同的输入馈送?我以为它可能是这样的:
class class_1(a,b):
def __init__(self):
self.a = a
self.b = b
def load_class(self):
hashed_input = ...
if os.path.isdir('data/'+hashed_input):
...load out....
else: self.calc_out()
def calc_out(self):
...takes an hour...
def save_class(self):
hashed_input = ...
dir = '/data/'+hashed_input
import pathlib
pathlib.Path(dir).mkdir(parents=True, exist_ok=True)
np.savez('dir/File.npz', out=self.out)
args = {a:1, b:2}
foo = class_1(**args)
foo.save_class()
但是我需要在类中使用args dict。
答案 0 :(得分:1)
也许将foo.save
作为回调传递给calc_out
?
def calc_out(self, cb):
...
...
cb()
foo.call_out(foo.save)