-3<-2<-1
返回True
。
但我希望它被解释为
(-3<-2)<-1
True<-1
1<-1
False
这怎么可能?
答案 0 :(得分:7)
这是chained comparison。它不是像(-3 < -2) < -1
这样的左关联,也不像-3 < (-2 < -1)
这样的右关联,而是被视为
(-3 < -2) and (-2 < -1)
除了-2
最多评估一次。
答案 1 :(得分:3)
与C不同,像
a < b < c
这样的表达式具有数学中常规的解释比较可以任意链接,例如,
x < y <= z
是等效的 至x < y and y <= z
,但y
仅评估一次(但两者都有) 如果发现z
为x < y
,则根本不评估案例false
。
因此
-3 < -2 < -1
相当于
-3 < -2 and -2 < -1 # where -2 is evaluated only once
答案 2 :(得分:0)
在documentation中声明它是语言的一部分