擅长:python、mysql、java
<p>链式表达式从左到右求值,此外,比较<code>is</code>和<code>!=</code>具有相同的优先级,因此表达式的求值方式为:</p>
<pre><code>(x is None) and (None!= y) and (y is None)
# -True | True -| - False -|
# -True |
# False -|
</code></pre>
<p>要更改评估顺序,您应该放置一些参数:</p>
<pre><code>>>> (x is None) != (y is None)
True
</code></pre>
<hr/>
<p>还要注意的是,第一个表达式<code>x is None == y is None</code>是一个侥幸心理,或者更确切地说是一个危险因素,因为如果在所需的位置放置一些paren,您将得到相同的结果。这可能就是为什么您假设顺序应该首先从<code>is</code>开始,然后在第二种情况下从<code>!=</code>开始。你知道吗</p>