Python函数长参数列表

标签 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

最佳答案

两种选择:

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

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

关于Python函数长参数列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7012553/

相关文章:

python - 狮身人面像 : Autodocs for classes inheriting from base classes implemented in C

python - (初学者)使用 Python 重命名文件 - 重构以获得更好的答案

python - 将 Python 列表转换为 JSON 文档

python - OOP python - 从列表中删除类实例

asp.net-mvc - 错误: Make sure that the controller has a parameterless public constructor webapi

c++ - 如何将函数作为参数传递?

python - "TypeError: Using a ` tf.Tensor ` as a Python ` bool ` is not allowed."在数据集上调用map函数时

python - 替换部分字符串

c# - 如何使用 C# 从 Windows 10 日历中检索 UWP 中的约会

parameters - 替换屏幕上显示的参数名称?