为什么Python中()会创建一个空元组?

tha*_*hry 5 python tuples

>>> x = ()
>>> type(x)
tuple
Run Code Online (Sandbox Code Playgroud)

我一直认为,元组文字是“构造函数”,因为在所有其他情况下,创建元组文字都需要逗号(并且括号似乎几乎是多余的,除了可读性之外):

>>> y = (1)
>>> type(y)
int

>>> z = (1,)
>>> type(z)
tuple

>>> a = 1,
>>> type(a)
tuple
Run Code Online (Sandbox Code Playgroud)

为什么会出现()异常呢?综合以上来看,它的回归似乎更有意义None。实际上:

>>> b = (None)
>>> type(b)
NoneType
Run Code Online (Sandbox Code Playgroud)

And*_*ent 0

我认为这是因为我们希望能够构造空元组,并且(,)语法无效。基本上,在某个地方决定逗号至少需要一个元素。文档中注明了 0 和 1 元素元组的特殊情况: https: //docs.python.org/3/tutorial/datastructs.html#tuples-and-sequences