if b后变量的寿命

2024-10-02 04:36:29 发布

您现在位置:Python中文网/ 问答频道 /正文

有这样的代码:

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

为什么变量aif块之后仍然有效?当blockif结束时,不应该销毁它吗?在


Tags: 代码trueifprintblockif
1条回答
网友
1楼 · 发布于 2024-10-02 04:36:29

Python变量的作用域在functionclassmodule内。在if语句、while语句和for语句中初始化的变量可在if/while/for语句之外使用

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

请注意,如果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

相关问题 更多 >

    热门问题