使用变量中的参数集调用Python函数

时间:2017-01-16 22:26:36

标签: python

在我的Python脚本中,我多次调用此函数

write2db(int(pocnr), larm1, tid, label1, q1, x, y, lat, long, radio)

我希望能够将变量集合放在一个变量中。

应该是这样的

write2db(myargs)

因此,当我更改args列表时,我不必在多个地方进行更改。我尝试过一些东西,但到目前为止还没有运气。 有什么建议?

2 个答案:

答案 0 :(得分:2)

您可以使用*args**kwargs。名称argskwargs实际上并不重要,但其***可以解决问题。基本上,*将解包列表,同样,**将解压缩字典。

*args只是一个值列表,其顺序与您定义函数的顺序相同。

例如

args = [23, 6, 2, "label", 5, 25, 21, 343.22, 111.34, 2]
write2db(*args)

**kwargs是参数名称到参数值的键值映射(python dict)

例如

kwargs = {
    'pocnr': 23,
    'larm1': 21,
    # ... etc.
}
write2db(**kwargs)

答案 1 :(得分:0)

您可以使用每个参数创建一个namedtuple,然后在函数内部按名称输出参数。

或者你可以使用变长参数* args,然后在你的函数中使用:

    for arg in args:
        # do something with arg