在Python中,没有块级作用域,也就是类似if语句块、for语句块、with上下文管理器等等是不存在作用域概念的,他们等同于普通的语句。
>>> if True: # if语句块没有作用域
x = 1
>>> x
1
>>> def func(): # 函数有作用域
a = 8
>>> a
Traceback (most recent call last):
File "<pyshell#3>", line 1, in <module>
a
NameError: name 'a' is not defined