如何将元组作为函数参数传递

1 投票
3 回答
6425 浏览
提问于 2025-04-16 21:33

我有一个包含元组的元组。

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)

这个 * 符号的作用是把里面的元组展开,然后作为参数传递给函数。

撰写回答