Python函数长参数列表

时间:2011-08-10 14:37:09

标签: python list parameters long-parameter-list

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

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

2 个答案:

答案 0 :(得分:5)

两个选项:

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

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

答案 1 :(得分:3)

简单地让函数返回一个字典。然后你可以使用myFunc(**yourdict)来调用它来使用dict项目作为参数,如果你return yourdict你得到了相同的dict(可能修改了值) - 或者你只是修改原始的dict而不是一个人回来。