回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我有很多变量,一些在代码开头加载的pickle文件和许多函数。由于所有的主要算法都是在函数(多个嵌套函数)内部执行的,因此每次需要执行函数时,我都会向这些函数发送10-15个变量和pickle加载的常量,这是非常不实际的。你知道吗</p>
<p>下面我只将5个pickle加载的常量(实际上在实际代码中有11个)和一些变量teta\ls、phi\ls、k、N、ti、fi、anm\u脱机</p>
<p>因此,我认为应该有一种更为实用的方法,将16-17个参数传递给我使用的函数</p>
<pre><code>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)
</code></pre>
<p>我的问题与具体的代码无关,这就是为什么我没有提供任何变量“值”等。我问的是“编写更好的代码”,实际上我是一名机械工程师,对“代码组织/结构”非常陌生</p>