Nik*_*s R 16 python syntax-error python-3.x python-3.4
我想知道为什么这是Python 3.4中的SyntaxError:
some_function(
filename = "foobar.c",
**kwargs,
)
Run Code Online (Sandbox Code Playgroud)
它在删除之后的尾随逗号时有效**kwargs.
pok*_*oke 13
正如vaultah所指出的那样(由于某种原因,他没有费心去发布答案),这是在问题跟踪器上报告的,并且自那以后一直有所改变.从Python 3.6开始,语法将正常工作.
要明确,是的,我想在
*argsor 之后允许尾随逗号**kwds.这就是补丁的作用.- Guido van Rossum
Eth*_*man 10
它最初被禁止的原因是因为它是**kwargs参数列表中最后一个允许的项目 - 没有任何东西可以追随它; 然而,,看起来可能会有更多关注它.
这已经改变,现在我们可以调用多个关键字dicts:
some_func(a, b, **c, **d,)
Run Code Online (Sandbox Code Playgroud)
为了保持一致性,现在在函数的定义和调用中都支持尾随逗号.当一个参数有多个参数或一些长参数时,这非常有用,因此逻辑行分成几个物理行.
尾随逗号在两个位置都是可选的.