传递 **kwargs 和尾随逗号的语法错误
SyntaxError with passing **kwargs and trailing comma
我想知道为什么这是 Python 3.4 中的语法错误:
some_function(
filename = "foobar.c",
**kwargs,
)
删除 **kwargs
后的尾随逗号时有效。
正如 vaultah 所指出的(出于某种原因他懒得 post 回答),这是 reported on the issue tracker 并且此后已更改。语法将从 Python 3.6.
开始正常工作
To be explicit, yes, I want to allow trailing comma even after *args
or **kwds
. And that's what the patch does. —Guido van Rossum
它最初被禁止的原因是因为 **kwargs
是参数列表中最后允许的项目——它之后没有任何内容;但是,,
看起来后面可能还有更多。
这已经改变了,我们现在可以用多个关键字指令调用:
some_func(a, b, **c, **d,)
为了保持一致性,现在函数的定义和调用都支持尾随逗号。当一个人有多个参数或几个长参数时,这非常有用,因此逻辑行被分成几条物理行。
两个位置的结尾逗号都是可选的。
我想知道为什么这是 Python 3.4 中的语法错误:
some_function(
filename = "foobar.c",
**kwargs,
)
删除 **kwargs
后的尾随逗号时有效。
正如 vaultah 所指出的(出于某种原因他懒得 post 回答),这是 reported on the issue tracker 并且此后已更改。语法将从 Python 3.6.
开始正常工作To be explicit, yes, I want to allow trailing comma even after
*args
or**kwds
. And that's what the patch does. —Guido van Rossum
它最初被禁止的原因是因为 **kwargs
是参数列表中最后允许的项目——它之后没有任何内容;但是,,
看起来后面可能还有更多。
这已经改变了,我们现在可以用多个关键字指令调用:
some_func(a, b, **c, **d,)
为了保持一致性,现在函数的定义和调用都支持尾随逗号。当一个人有多个参数或几个长参数时,这非常有用,因此逻辑行被分成几条物理行。
两个位置的结尾逗号都是可选的。