我有很多变量,一些在代码开头加载的pickle文件和许多函数。由于所有的主要算法都是在函数(多个嵌套函数)内部执行的,因此每次需要执行函数时,我都会向这些函数发送10-15个变量和pickle加载的常量,这是非常不实际的。你知道吗
下面我只将5个pickle加载的常量(实际上在实际代码中有11个)和一些变量teta\ls、phi\ls、k、N、ti、fi、anm\u脱机
因此,我认为应该有一种更为实用的方法,将16-17个参数传递给我使用的函数
file = open("spherical_jn_der_offline","rb")
spherical_jn_der_offline = pickle.load(file)
file.close()
file = open("spherical_jn_offline","rb")
spherical_jn_offline = pickle.load(file)
file.close()
file = open("sph_harm_offline","rb")
sph_harm_offline = pickle.load(file)
file.close()
file = open("spherical_bn_offline","rb")
spherical_bn_offline = pickle.load(file)
file.close()
file = open("sph_harm_offline_der","rb")
sph_harm_offline_der = pickle.load(file)
file.close()
def interpolation(N, k, ti, fi,anm_offline,spherical_jn_der_offline,spherical_jn_offline,sph_harm_offline,spherical_bn_offline),sph_harm_offline_der):
p_grad = grad(teta_ls, phi_ls, k, N, ti, fi,anm_offline,spherical_jn_der_offline,spherical_jn_offline,sph_harm_offline,spherical_bn_offline),sph_harm_offline_der)
u = calc_u(p_grad, ro, k, f[fi])
p = pressure_field(fi, ti, N,anm_offline,spherical_jn_der_offline,spherical_jn_offline,sph_harm_offline,spherical_bn_offline),sph_harm_offline_der)
I_act, In = ia(p, u)
return(p,I_act)
for ti in range(23350):
for fi in range(257):
pressure_ls, I_ls = interpolation(N, k, ti, fi, anm_offline,spherical_jn_der_offline,spherical_jn_offline,sph_harm_offline,spherical_bn_offline),sph_harm_offline_der)
我的问题与具体的代码无关,这就是为什么我没有提供任何变量“值”等。我问的是“编写更好的代码”,实际上我是一名机械工程师,对“代码组织/结构”非常陌生
将它们打包到一个dict中,其中键是参数名,**kwargs在函数调用中解包它们
您可以在循环中打开文件:
然后可以将
arguments
列表解压到函数中:相关问题 更多 >
编程相关推荐