1

我正在寻找为我的函数提供参数列表的最佳方法:

def myFunc(*args):
    retVal=[]
    for arg in args:
        retVal.append(arg+1)
    return "test",retVal

问题是,当您有很长的参数列表要传递给您的函数时,它变得非常烦人,因为您必须编写整个参数列表的两倍,并且当您有 10 个或更多具有完整名称的参数时,它变得真的(真的) 重的。

test,alpha,beta,gamma,delta,epsilon,zeta,eta,theta,iota=myFunc(alpha,beta,gamma,delta,epsilon,zeta,eta,theta,iota)

所以我想到了这样的事情:

w=alpha,beta,gamma,delta,epsilon,zeta,eta,theta,iota
test,w=myFunc(w)

但是我仍然必须这样做:

alpha,beta,gamma,delta,epsilon,zeta,eta,theta,iota=w

有没有更短的方法可以从函数中给出和取回参数列表。或者给函数一个指针,让它直接修改参数?

这就是我正在寻找的:

w=alpha,beta,gamma,delta,epsilon,zeta,eta,theta,iota
test,w=myFunc(w)

# And directly get my parameters modified to be able to print them :
print alpha,[...],iota
4

2 回答 2

4

两种选择:

  1. 尝试通过将逻辑拆分为多个函数来减少参数的数量。

  2. 如果 1.) 不可能,您可以使用字典作为单个参数 - 封装所有参数。这将是一个灵活的(函数的签名保持不变,即使您删除或添加参数)并且大多数可读的解决方案(字典中的有意义的键)。

于 2011-08-10T14:43:13.073 回答
3

只需让函数返回一个字典。然后你可以调用它myFunc(**yourdict)来使用字典项作为参数,如果你return yourdict返回相同的字典(可能修改了值) - 或者你只是修改原始字典并且根本不返回一个。

于 2011-08-10T14:39:36.243 回答