2

有这个代码:

>>> if True:
...     a = 4
... 
>>> print a
4

为什么变量a在if块之后仍然存在?阻塞时不应该被销毁吗?

4

1 回答 1

10

Python 变量在afunction或. 语句中初始化的变量,语句和语句在if/while/for语句外都可以使用classmoduleifwhilefor

这与许多其他语言不同,在这些语言中,访问变量会因为超出范围而引发异常

请注意,如果 if/while/for 语句为 false 并且不执行,a例如不会被初始化,它会抛出如下错误:

>>> if False:
...     a = 5
... 
>>> print a
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'a' is not defined
于 2012-09-08T10:46:49.063 回答