擅长:python、mysql、java
<p><code>a if b else c</code>是一个条件表达式,如果<code>b</code>的计算结果为<code>a</code>,否则为<code>c</code>。在给定的上下文中,它检查<code>default</code>是否是{a1},在这种情况下,它存储在<code>self.default</code>中。否则,将创建<code>type</code>的新实例并在<code>self.default</code>中存储。在</p>
<p>请注意,此实现有几个问题:</p>
<ol>
<li><p>它使用<code>type</code>作为变量名,隐藏了内置的<code>type()</code>。这被认为是不好的风格。</p></li>
<li><p>它使用条件<code>if default</code>,实际上应该使用<code>if default is None</code>。该检查旨在测试参数<code>default</code>是否实际传递给了构造函数。实际上,实现不会接受<a href="http://docs.python.org/library/stdtypes.html#truth-value-testing" rel="nofollow">evaluates to ^{<cd15>}</a>的任何默认值。</p></li>
</ol>