如何将元组作为函数参数传递
我有一个包含元组的元组。
EVENT_MAPPING = (
(func1, (paramA1, paramA2, paramA3)),
(func2, (paramB1)),
(func3, (paramC1, paramC2)),
)
我在遍历第一个元组。我想用第二个元组里的参数和其他参数来调用第一个参数里的函数。例如,对于第一个元组:
func1(origin, paramA1, paramA2, paramA3)
如果没有“origin”这个参数,我可以通过以下方式进行调用:
args[0](args[1])
但是如果有额外的参数(“origin”),我就不能这样做了。我找到了一种方法,但感觉很繁琐:
call = tuple(list(args[1]).insert(0,origin))
args[0](call)
有没有更好的方法来实现这个?
谢谢你的帮助。
3 个回答
0
如果你想把原始数据添加到参数中,可以试试这样做:
for func, args in EVENT_MAPPING:
func(*(origin,)+args)
1
for func, args in EVENT_MAPPING:
func(origin, *args)
当然可以!请把你想要翻译的内容发给我,我会帮你把它变得简单易懂。
11
像这样,可能是:
for func, args in EVENT_MAPPING:
func(*args)
这个 * 符号的作用是把里面的元组展开,然后作为参数传递给函数。