python 提前加载数据问题 5C

现在有个py文件,里面有个方法,运行方法前要加载很多参数,导致每次运行这个py文件时
都要重新加载参数,有没有什么办法只加载一次,后面再运行就不需要加载了

5个回答

把加载的参数封装一个函数或者类,调用就可以,
def AA(a,b)

def aa()
return a
def bb()
return b

可以考虑在第一次加载的时候序列化这些参数,
以后再运行的时候直接反序列化
推荐模块pickle

if __name__ == '__main__':
  加载参数

这样,直接运行这个py的时候,才加载参数,其它模块调用,就不执行这一段了。

然后你把需要的参数放在这个py开头,不属于任何函数内的地方,就可以定义全局变量了。再定义一个方法:

 def initVal():
   在这里初始化参数

你需要初始化参数或者改变参数,就调用它

CSDN_Black
csdn_black 回复CSDN_Black: 这样别的py(后面称为A)文件导入这个需要加载参数的py文件(后面称之为B),然后调用初始化的函数initVal(),这样以来每次运行A的时候不是仍然需要初始化参数吗,依然会很慢呀?我现在初始化参数这一步需要2分钟。。。
一年多之前 回复
CSDN_Black
csdn_black 这样别的py(后面称为A)文件导入这个需要加载参数的py文件(后面称之为B),然后调用初始化的函数initVal(),这样以来我
一年多之前 回复

推荐使用Ipython notebook,程序可以分块进行,先运行加载数据部分的代码块,然后在运行其他部分的代码,后面的代码可以反复需改运行而不需要再次加载数据

如果是一个程序里需要重复调用这个py文件,就把耗时的参数初始化拎出来,再次调用时用之前初始化的结果;
如果是这个py文件需要单独运行多次,参数持久化可能会让参数加载快点;
如果参数已经是持久化的形式,加载仍然很慢,可以考虑持久化为其他加载速度更快的文件格式。
场景不是很明确,答案仅供参考。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问