Python 比较运算符优先级

Python comparison operator precedence

Python中的所有比较运算具有相同的优先级,低于任何算术、移位或位运算的优先级。因此“==”和“<”具有相同的优先级,为什么下面的第一个表达式求值为 True,与第二个表达式不同?

>>> -1 < 0 == False
True

>>> (-1 < 0) == False
False

我希望两者都被评估为 False。为什么不是这样?

Python 有一个非常好的功能 - chained comparison,就像在数学表达式中一样,所以

-1 < 0 == False

实际上是 syntactic sugar for

-1 < 0 and 0 == False

引擎盖下。