函数独立于变量的顺序



假设我有一个函数折射

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。如果您想添加参数,并使它们对现有调用是可选的。

最新更新