变量的作用域
-
在Python程序中创建、改变、查找变量名时,都是在一个保存变量名的空间中进行,我们称之为命名空间,也被称之为作用域。
-
Python的作用域是静态的,在源代码中变量名被赋值的位置决定了该变量能被访问的范围。即Python变量的作用域由变量所在源代码中的位置决定。
作用域的产生
-
只有当变量在
Module(模块)
、Class(类)
、def(函数)
中定义的时候,才会有作用域的概念。 -
在作用域中定义的变量,一般只在该作用域中有效。
-
在
if-elif-else
、for-else
、while
、try-except/try-finally
等关键字的语句块中并不会产生作用域
代码分析1
def func():
variable = 100
print(variable)
print(variable)
代码执行到第二个
print(variable)
时会报错NameError: name 'variable' is not defined
变量
variable
只在函数func()
的定义域内有效!
代码分析2
if True:
variable = 100
print(variable)
print("******")
pr