我有一个包含元组的元组。
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)
有更好的方法吗?
感谢您的帮助
答案 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)