这里的问题是我想将一个元组作为参数传递给第二个函数.之前有"重复!"的呐喊!我已经看过一篇关于类似问题的帖子,将元组扩展为参数
这是我正在测试的代码:
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'.
所以我的问题是,是否有更好的方法将元组传递给多参数函数,并保留排序?
同样对于奖励积分,'*'运算符有什么作用?(这在前一篇文章中没有解释)
正如错误消息所述,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)
| 归档时间: |
|
| 查看次数: |
131 次 |
| 最近记录: |