<p>如果之前有人问过这个问题,我深表歉意,但我一直在徒劳地寻找我的问题的答案。基本上,在Python2.7中,我有一个运行一系列地理处理工具的程序,这取决于用户在脚本中调整的一系列真/假变量(例如</p>
<pre><code>x = True
if x:
run function
</code></pre>
<p>但是,我现在发现x不需要字面上的“True”就可以运行函数。例如:</p>
<pre><code>In: x = True
if x:
print True
Out: True
In: x = 123
if x:
print True
Out: True
In: x = 'False'
if x:
print True
Out: True
In: x = False
if x:
print True
Out:
</code></pre>
<p>因此,除False以外的任何值都会被计算为True,如果<strong>x==True</strong>或<strong>x为True</strong>则不是这种情况。鉴于PEP8强烈建议仅使用<strong>if x:</strong>变量,有人能解释为什么会发生这种行为吗?似乎if x:更像是对“if x is not False”或“if x exists”的测试。考虑到这一点,我认为如果x是真的,我应该使用它:在这种情况下,不管PEP 8怎么说。</p>
<p>亲切的问候</p>