假设我有一个函数折射:
def Refraction(n_i, n_j, theta_i):
theta_j = arcsin(n_i/n_j * sin(theta_i)
return theta_j
现在,如果我改变论点的立场,比如:
Refraction(theta_1,n1,n2)
它将给出不同于函数的结果。
现在我的问题是,有什么方法可以定义一个独立于变量顺序的函数吗?这样我就可以回忆起另一个函数中的函数,该函数以不同的顺序接受相同的变量,例如:
def Fresnel(theta_i, n_i, n_j):
# call the function
theta_j = Refraction(theta_i, n_i, n_j)
rs_ij = ni*cos(theta_i) - n_j*cos(theta_j) / (n_i*cos(theta_i) + n_j*cos(theta_j))
return rs_ij
如果有任何建议或批评,我将不胜感激。
您可以在调用函数时命名参数。那么,只要参数被命名,顺序就无关紧要了。
Refraction(n_i=n1, n_j=n2, theta_i=theta_1)
使用命名参数(如AnisR建议的那样(或将参数更改为按名称保存值的dict。如果您想添加参数,并使它们对现有调用是可选的。