【发布时间】:2013-06-19 22:06:48
【问题描述】:
我在一个适用于== 但不适用于is 的表达式上出现了一些相当意外的行为:
>>> (True == False) is False
True
>>> True == (False is False)
True
>>> True == False is False
False
>>> id(True)
8978640
>>> id(False)
8978192
>>> id(True == False)
8978192
>>> id(False is False)
8978640
【问题讨论】:
-
哦。事实证明它与
is与==无关,因为无论哪种情况,表达式的计算结果都是False。感谢所有快速回答! -
@MartijnPieters 在输入我的答案时,我认为之前一定有人问过这个问题,但我想这可能很难用谷歌搜索。这个question 可能是另一个副本。
-
我认为对于那些对“从 1 到 10 分,你的 Python 技能如何”的问题回答“10”的人来说,这将是一个很好的面试问题?
-
@jpic:我相信这个问题的精神是很多人会写 True == False is False 认为它会被解析为 (True == False) is False,它评估to FALSE 是 False,因此应该是 True。
标签: python