我有以下表达式:
>>> a = 3
>>> b = 2
>>> a == (a := b)
False
现在,a == 2
手术后,正如预期的那样。结果就是我想要的,即a
在分配之前与分配的 RHS 进行比较。
反转相等运算符的顺序会反转结果:
>>> a = 3
>>> b = 2
>>> (a := b) == a
True
在PEP-572, relative priority section中似乎没有任何与此极端情况直接相关的内容。下一节,对评估顺序的更改提到评估顺序是从左到右的。这就是这里发生的事情吗(存储 的值a
,更新它,比较 vs 更新a
,然后比较它的新值)?
这种行为在哪里定义,它的可靠性如何?