疯狂的Python-11(尾部的逗号)
2018-09-09 本文已影响0人
景行1023
一些有趣的鲜为人知的Python特性集合
无论你是Python新手还是Python老手,我相信,这个系列的文章都会让你获益良多!
阅读此系列任何文章前请务必观看:疯狂的Python-目录大纲
▶ 尾部的逗号
Output:
>>> def f(x, y,):
... print(x, y)
...
>>> def g(x=4, y=5,):
... print(x, y)
...
>>> def h(x, **kwargs,):
File "<stdin>", line 1
def h(x, **kwargs,):
^
SyntaxError: invalid syntax
>>> def h(*args,):
File "<stdin>", line 1
def h(*args,):
^
SyntaxError: invalid syntax
:bulb: 解释:
- 末尾的逗号在函数参数列表最后并不总是合法的
- 在Python中,参数列表里,有一部分使用前导逗号分隔的,有一部分是用后导逗号分隔的(比如
**kwargs
这种参数用前导逗号分隔,正常参数x
用后导逗号分隔)。而这种情况就会导致有些参数列表里的逗号前后都没有用到,就会产生冲突导致编译失败。 - 注意 这种尾部逗号的问题已经在Python 3.6中被修复了。然后这里有对各种尾部逗号用法的讨论。