这让我困惑.即使不知道优先顺序,也可以判断收集表达式的两种可能方法是否会给出False
:
>>> (0 is 0) == 0
False
>>> 0 is (0 == 0)
False
但是
>>> 0 is 0 == 0
True
怎么会?
这让我困惑.即使不知道优先顺序,也可以判断收集表达式的两种可能方法是否会给出False
:
>>> (0 is 0) == 0
False
>>> 0 is (0 == 0)
False
但是
>>> 0 is 0 == 0
True
怎么会?
在Python中链接比较运算符时,这些运算符实际上并不应用于其他运算符的结果,而是单独应用于操作数.也就是说,x ? y ?? z
(其中?
和??
应该代表一些比较运算符)既不等于(x ? y) ?? z
也不等于x ? (y ?? z)
,而是x ? y and y ?? z
.
这对>
和co特别有用,它允许你写min < x < max
之类的东西,让它做你想做的事情,而不是将布尔值与数字进行比较(这在大多数其他语言中都会发生).