擅长:python、mysql、java
<p>在<code>testfcn1</code>中,表达式分组为-</p>
<pre><code>(a, (a*2 if return_two else a)) #This would always return a tuple of 2 values.
</code></pre>
<p>而不是(你想的那样)-</p>
<pre><code>(a, a*2) if return_two else a #This can return a tuple if return_two is True otherwise a single value `a` .
</code></pre>
<p>如果你想要第二组表达式,你必须使用括号,就像我在上面使用的那样。你知道吗</p>
<hr/>
<p>举例说明区别-</p>
<pre><code>>>> 10, 20 if True else 10
(10, 20)
>>> 10, 20 if False else 10
(10, 10)
>>>
>>>
>>> (10, 20) if False else 10
10
>>> (10, 20) if True else 10
(10, 20)
>>>
>>>
>>> 10, (20 if False else 10)
(10, 10)
>>> 10, (20 if True else 10)
(10, 20)
</code></pre>