答案应该非常简单,应该已经是答案,但是我找不到它。
() is None # False
(None) is None # True
(None, None) is None # False
所有这些检查的结果都是可以预期的,但总的来说看起来很奇怪。问题:
(None) is None
-是因为拆箱?() is not None
?即如果(None)
已经 None
为什么()
不是?答案 0 :(得分:2)
() is not None
因为()
是一个空元组,而不是无。
(None, None) is not None
因为(None, None)
是具有两个None
元素的元组,显然与一个None
元素不同。
(None) is None
因为(None)
在元组中不是。这些括号用于表示数学分组/计算顺序,在这种情况下可以省略,从而得到None is None
。
(None,) is not None
这可能是您要尝试创建的,带有一个None
元素的元组。
答案 1 :(得分:1)
因为放在括号内并且表达式不会更改其值。
为什么应该是None
? ()
实际上是一个空元组。