运算符优先级的Python文档指出:>
Operators in the same box group left to right (except for comparisons, including tests, which all have the same precedence and chain from left to right — see sectionComparisons...)
这是什么意思? 具体来说:
"同一框中的运算符从左到右分组(除 比较...)"-比较组不是从左到右吗?
如果比较不是not从左到右分组,那么它们将做什么呢? 他们是"连锁"而不是"团体"吗?
如果比较"链"而不是"组",那么"链"和"分组"之间有什么区别?
将有什么示例来证明比较运算符从左到右而不是从右到左链接?
最新回答
- 2021-1-111 #
分组(这是非比较运算符的作用):
连锁(这是比较运算符的作用):
从左到右分组(这是事物分组的方式):
与从右到左分组(这会产生不同的结果)相反:
(编辑)
连锁是从左到右,所以在
a < b < c
,表示a < b
在b < c
之前进行评估 ,如果是a < b
是假的,b < c
未评估。(2 < 1 < f())
赋予值False
无需调用f
函数 ,因为2 < 1
计算结果为false,因此不需要执行第二次比较.f() > 1 > g()
叫f()
为了评估第一个比较,并根据结果,它可能需要评估第二个条件,也可能不需要,这需要调用g()
https://en.wikipedia.org/wiki/短路评估