【发布时间】:2013-11-14 02:49:03
【问题描述】:
正如所料,1 不包含在空元组中
>>> 1 in ()
False
但返回的False 值不等于False
>>> 1 in () == False
False
换个角度看,in 运算符返回一个bool,它既不是True 也不是False:
>>> type(1 in ())
<type 'bool'>
>>> 1 in () == True, 1 in () == False
(False, False)
但是,如果原始表达式被括号括起来,则正常行为会恢复
>>> (1 in ()) == False
True
或者它的值存储在一个变量中
>>> value = 1 in ()
>>> value == False
True
在 Python 2 和 Python 3 中都观察到了这种行为。
你能解释一下发生了什么吗?
【问题讨论】:
标签: python boolean membership comparison-operators