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

时间:2011-07-14 20:36:11

标签: python list function function-pointers tuples

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

EVENT_MAPPING = (
    (func1, (paramA1, paramA2, paramA3)),
    (func2, (paramB1)),
    (func3, (paramC1, paramC2)),
)

我迭代第一个元组。我想在第二个param和其他param中使用args调用第一个参数中包含的函数。例如,对于第一个元组:

func1(origin, paramA1, paramA2, paramA3)

如果他们不是“起源”参数,我可以打个电话,谢谢:

args[0](args[1])

但是对于额外的参数(“起源”),我不能做那样的事情。 我找到了一种方法,但它很重:

call = tuple(list(args[1]).insert(0,origin))
args[0](call)

有更好的方法吗?

感谢您的帮助

3 个答案:

答案 0 :(得分:11)

像这样,可能是:

for func, args in EVENT_MAPPING:
  func(*args)

*提取(展开)内部元组,它们作为参数传递给函数。

答案 1 :(得分:1)

for func, args in EVENT_MAPPING:
    func(origin, *args)

答案 2 :(得分:0)

如果你想将原点添加到args中,这样的东西应该可以工作:

for func, args in EVENT_MAPPING:
    func(*(origin,)+args)