擅长:python、mysql、java
<p><a href="https://docs.python.org/2/reference/expressions.html#boolean-operations" rel="nofollow">boolean operations</a>上的Python语言参考说明了这一点:</p>
<blockquote>
<p>In the context of Boolean operations, and also when expressions are
used by control flow statements, the following values are interpreted
as false: <code>False</code>, <code>None</code>, numeric zero of all types, and empty
strings and containers (including strings, tuples, lists,
dictionaries, sets and frozensets). All other values are interpreted
as true. (See the <code>__nonzero__()</code> special method for a way to change this.)</p>
</blockquote>
<p>在您的例子中,由于<code>root</code>似乎是用户定义类型的实例(它有<code>left</code>和<code>right</code>成员,而内置类型没有),因此它要么实现了<code>__nonzero__</code>方法,要么<code>None</code>或者传入类似的“空”对象来表示没有“左”和“右”。你知道吗</p>