美文网首页程序员《做与学系列》
疯狂的Python-11(尾部的逗号)

疯狂的Python-11(尾部的逗号)

作者: 景行1023 | 来源:发表于2018-09-09 17:24 被阅读0次

    一些有趣的鲜为人知的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中被修复了。然后这里有对各种尾部逗号用法的讨论。

    相关文章

      网友评论

        本文标题:疯狂的Python-11(尾部的逗号)

        本文链接:https://www.haomeiwen.com/subject/wzogwftx.html