擅长:python、mysql、java
<p>对<code>x = x if c else y</code>使用三元是没有错的,但是,在<code>x = x if x else y</code>的情况下,逻辑实际上只是简化为</p>
<pre><code>x = x or y
</code></pre>
<p>这是因为在Python中,<code>x or y</code>的计算结果是<a href="http://docs.python.org/2/library/stdtypes.html#boolean-operations-and-or-not" rel="nofollow">'if x is false, then y, else x'</a></p>
<p>所以<code>x if x else y</code>==<code>y if not x else x</code>==<code>x or y</code></p>
<p>显然,<code>x or y</code>是最清晰的,应该使用。在</p>