擅长:python、mysql、java
<p>如果你真的想缩短它,你可以这样做,例如:</p>
<pre><code>nin = bar if nin is None else nin
</code></pre>
<p>请注意,这里我使用的是<code>is</code>,而不是<em>真实性</em>来测试<code>None</code>,否则,如果<code>nin = 0</code>会发生什么?这不是<code>None</code>,但仍然计算false-y(参见<a href="https://docs.python.org/2/library/stdtypes.html#truth-value-testing" rel="nofollow">truth value testing</a>),因此<a href="https://www.python.org/dev/peps/pep-0008/" rel="nofollow">style guide</a>的建议是:</p>
<blockquote>
<p>Comparisons to singletons like <code>None</code> should always be done with <code>is</code>
or <code>is not</code> ... beware of writing <code>if x</code> when you really mean
<code>if x is not None</code> e.g. when testing whether a variable or argument that
defaults to <code>None</code> was set to some other value. The other value might
have a type (such as a container) that could be false in a boolean
context!</p>
</blockquote>