Mar*_*son 3 python tuples list
是否可以解压缩列表或元组,使得值可以用作函数参数?即,我怎样才能使第二条线工作?
f(1,2,3)
f(???([1,2,3]))
Run Code Online (Sandbox Code Playgroud)
我现在正在手工做这件事,比如:
tmp1, tmp2, tmp3 = [1,2,3]
f(tmp1,tmp2,tmp3)
Run Code Online (Sandbox Code Playgroud)
context:我没有能力修改f(),但这是代码生成器的一部分,所以时髦的解决方案不是问题.
Mar*_*ers 11
是的,您可以使用*args(splat)语法:
f(*[1, 2, 3])
Run Code Online (Sandbox Code Playgroud)
请参阅调用表达式文档.
还有一个关键字参数等效,使用两颗星:
kwargs = {'foo': 'bar', 'spam': 'ham'}
f(**kwargs)
Run Code Online (Sandbox Code Playgroud)
并且在函数签名中指定catch-all参数的语法相同:
def func(*args, **kw):
# args now holds positional arguments, kw keyword arguments
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1123 次 |
| 最近记录: |