为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

catspeake 2019-07-12 10:32:52
在元组定义中有后缀逗号的语法规则是什么?对于单个元素元组,需要后缀逗号。a = ('foo',)多个元素的元组怎么样?不管后缀逗号是否存在,它们似乎都是有效的。这是对的吗?在我看来,使用后缀逗号更容易编辑。这是一种糟糕的编码方式吗?a = ('foo1', 'foo2')b = ('foo1', 'foo2',)
查看完整描述

3 回答

?
慕标琳琳

TA贡献1830条经验 获得超9个赞

在所有情况下,除空元组外,逗号是最重要的。只有在其他语法原因需要时才需要使用括号:将元组与一组函数参数、操作符优先级区分开来,或者允许换行。

元组、列表或函数参数的后缀逗号是很好的样式,特别是当您有一个长的初始化并且被分割成多行的时候。如果您总是包含一个后缀逗号,那么您不会在末尾添加另一行,希望添加另一个元素,而只是创建一个有效的表达式:

a = [
   "a",
   "b"
   "c"]

假设它最初是作为一个2元素列表开始的,后来又进行了扩展,那么它可能是以一种不太明显的方式出错了。始终包含后面的逗号,这样就避免了这个陷阱。


查看完整回答
反对 回复 2019-07-12
?
扬帆大鱼

TA贡献1799条经验 获得超9个赞

只有单项元组才需要消除定义元组或包含括号的表达式的歧义。

(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,
               )

请注意,这也适用于其他集合(例如列表和字典),而不仅仅是元组。


查看完整回答
反对 回复 2019-07-12
?
倚天杖

TA贡献1828条经验 获得超3个赞

后缀逗号的另一个优点是,它使差异看起来更好。如果你一开始

a = [
    1,
    2,
    3]

并将其改为

a = [
    1,
    2,
    3,
    4]

差别看起来就像

 a = [
     1,
     2,-    3+    3,+    4
 ]

然而,如果你用一个后缀逗号开头,就像

a = [
    1,
    2,
    3,]

那么差别就是

 a = [
     1,
     2,
     3,+    4,
 ]


查看完整回答
反对 回复 2019-07-12
  • 3 回答
  • 0 关注
  • 640 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信