为什么“ True == False is False”评估为False?

发布于 2021-01-29 17:10:16

我在与==但不能一起使用的表达式上得到了一些相当意外的行为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
关注者
0
被浏览
149
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    因为实际上这是一个链式比较,所以

    True == False is False
    

    相当于

    (True == False) and (False is False)
    

    在这种情况下,这可能令人惊讶,但可以让您编写1 <= x < 4不同于其他语言(如C)的语言。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看