<p>我发现python中有一个奇怪的地方,那就是无法做到:</p>
<pre><code>In [3]: if x:
...: print y
...:
----> 1 if x:
2 print y
3
NameError: name 'x' is not defined
</code></pre>
<p>这会导致声明为None或whatnot,或者使用try/except,这两种情况下的代码都更多。我的朋友曾经说“你不想检查一些不存在的东西”,我不同意,因为你可以检查项目是否存在,而不是现有项目是否有任何东西。一个从未存在过的虚构人物和一个现在已经不在人世的死者之间是有区别的。你知道吗</p>
<p>有哪种语言允许这样做,它是强大的,还是会引起问题?你知道吗</p>
<p>当你是新手时,这似乎是一个好主意,但几乎总是无用的,比如在你应该使用列表时创建编号为<code>item1</code>到<code>itemN</code>的变量。你可以做到:</p>
<pre><code>try:
x
except NameError:
defined = False
else:
defined = True
</code></pre>
<p>但通常有更好的方法来实现你的基本目标。你知道吗</p>