将元组传递给多参数函数

The*_*Son 1 python tuples

这里的问题是我想将一个元组作为参数传递给第二个函数.之前有"重复!"的呐喊!我已经看过一篇关于类似问题的帖子,将元组扩展为参数

这是我正在测试的代码:

def producer():
    return ('a','b')

def consumer(first, second, third):
    print first+second+third

arg = producer()
consumer(*arg, 'c') # expected abc
Run Code Online (Sandbox Code Playgroud)

这输出错误:

There's an error in your program *** only named arguments may follow *expression
Run Code Online (Sandbox Code Playgroud)

这个有用的错误消息导致切换参数的顺序consumer('c', *arg),但这并不能完全解决问题,因为它会输出'cab'.

所以我的问题是,是否有更好的方法将元组传递给多参数函数,并保留排序?

同样对于奖励积分,'*'运算符有什么作用?(这在前一篇文章中没有解释)

iCo*_*dez 6

正如错误消息所述,Python不允许您在之后拥有未命名的参数*arg.

因此,您需要明确命名third:

>>> def producer():
...    return ('a','b')
...
>>> def consumer(first, second, third):
...    print first+second+third
...
>>> arg = producer()
>>> consumer(*arg, third='c')
abc
>>>
Run Code Online (Sandbox Code Playgroud)