为什么(())等于()?

时间:2011-03-19 10:06:35

标签: python

>>> (()) == ()
True
>>> (())
()

3 个答案:

答案 0 :(得分:12)

()是一个0元组。 (foo)会产生foo的值。因此,(())会产生0元组。

来自the tutorial

  

构造了一个带有一个项目的元组   通过用逗号跟随一个值(它   不足以附上一个单身   括号中的值。)

答案 1 :(得分:6)

出于同样的原因,(4) == 4:在表达式周围添加括号不会改变其含义(除非它当然会以不同的方式进行分组)。

请注意,( foo ) 是1元组。否则3 * (4 + 5)之类的内容将会出错,因为(4 + 5)将是包含9的1元组,并且您无法将数字添加到1元组中。

答案 2 :(得分:2)

我现在看到了。来自the tutorial

  

构造了一个带有一个项目的元组   通过用逗号跟随一个值(它   不足以附上一个单身   括号中的值。)

所以(())不是包含空元组的元组 - 这就是元组:((),)