在元组定义中有后缀逗号的语法规则是什么?

在元组定义中有后缀逗号的语法规则是什么?

对于单个元素元组,需要后缀逗号。

a = ('foo',)

多个元素的元组怎么样?不管后缀逗号是否存在,它们似乎都是有效的。这是对的吗?在我看来,使用后缀逗号更容易编辑。这是一种糟糕的编码方式吗?

a = ('foo1', 'foo2')b = ('foo1', 'foo2',)


catspeake
浏览 641回答 3
3回答

慕标琳琳

在所有情况下,除空元组外,逗号是最重要的。只有在其他语法原因需要时才需要使用括号:将元组与一组函数参数、操作符优先级区分开来,或者允许换行。元组、列表或函数参数的后缀逗号是很好的样式,特别是当您有一个长的初始化并且被分割成多行的时候。如果您总是包含一个后缀逗号,那么您不会在末尾添加另一行,希望添加另一个元素,而只是创建一个有效的表达式:a = [    "a",    "b"    "c"]假设它最初是作为一个2元素列表开始的,后来又进行了扩展,那么它可能是以一种不太明显的方式出错了。始终包含后面的逗号,这样就避免了这个陷阱。

扬帆大鱼

只有单项元组才需要消除定义元组或包含括号的表达式的歧义。(1)  # the number 1 (the parentheses are wrapping the expression `1`)(1,) # a 1-tuple holding a number 1对于不止一个项目,它不再是必要的,因为它是一个完全清楚的元组。但是,尾随逗号可以使用多行定义它们变得更容易。您可以在不破坏语法的情况下添加到末尾或重新排列项,因为意外时遗漏了逗号。例如,someBigTuple = (                    0,                    1,                    2,                    3,                    4,                    5,                    6,                    7,                    8,                    9,                    10,                    #...                    10000000000,                )请注意,这也适用于其他集合(例如列表和字典),而不仅仅是元组。

倚天杖

后缀逗号的另一个优点是,它使差异看起来更好。如果你一开始a = [     1,     2,     3]并将其改为a = [     1,     2,     3,     4]差别看起来就像 a = [      1,      2,-    3+    3,+    4  ]然而,如果你用一个后缀逗号开头,就像a = [     1,     2,     3,]那么差别就是 a = [      1,      2,      3,+    4,  ]
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python