这是否符合我的想法?
assert 1 < 2 < 3
我无法在the docs中找到对此的任何引用,但我在高代表answer中看到了它。
它似乎有用,但它可能是运气,就像最左边的解析为True
,然后True
用于另一个。
我做了一些测试,它总是按预期工作,但我想找一个明确表明它是有意的来源(文档)。
>>> 1<2<3<4<5
True
>>> 1<2<7<4<5
False
>>> 1<2<3>2<5
True
这排除了最左边的第一个&#34;假设:
>>> 1<3<2
False
>>> (1<3)<2
True
答案 0 :(得分:3)
Expressions章节详细记录了这一点:
比较可以任意链接,例如,
x < y <= z
是等效的 至x < y
和y <= z
,但y
仅评估一次(但两者都有) 如果发现z
为false,则根本不评估案例x < y
。正式,如果 a , b , c ,..., y , z 是表达式, op1 , op2 ,..., opN 是比较运算符,然后
a op1 b op2 c ... y opN z
是等价的 到a op1 b and b op2 c and ... y opN z
,除了每个表达式都是 最多评估一次。请注意,
a op1 b op2 c
并不意味着 a 之间的任何比较 和 c ,因此,例如x < y > z
是完全合法的(尽管可能不是 相当)。