在我的Python脚本中,我多次调用此函数
write2db(int(pocnr), larm1, tid, label1, q1, x, y, lat, long, radio)
我希望能够将变量集合放在一个变量中。
应该是这样的
write2db(myargs)
因此,当我更改args列表时,我不必在多个地方进行更改。我尝试过一些东西,但到目前为止还没有运气。 有什么建议?
答案 0 :(得分:2)
您可以使用*args
或**kwargs
。名称args
和kwargs
实际上并不重要,但其*
和**
可以解决问题。基本上,*
将解包列表,同样,**
将解压缩字典。
*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