Python的变量作用域
1.在Python程序中创建、改变、查找变量名时,都是在一个保存变量名的空间中进行,我们称之为命名空间,也被称之为作用域。
2.Python的作用域是静态的,在源代码中变量名被赋值的位置决定了该变量能被访问的范围。即Python变量的作用域由变量所在源代码中的位置决定。
作用域的产生
1.只有当变量在 Module(模块) 、 Class(类) 、 def(函数) 中定义的时候,才会有作用域的概念。
2.在作用域中定义的变量,一般只在该作用域中有效。
3.在 if-elif-else 、 for-else 、 while 、 try-except/try-finally 等关键字的语句块中并不会产生作用域
代码分析
1.
运行结果
2.案例
运行结果
二.、作用域的类型
- 局部作用域 L(local)
- 闭包函数外的函数中 E(Enclosing)
- 全局作用域 G(global)
- 内建作用域 B(build-in)
python执行时查找作用域的顺序是L-E-G-B,即:先在局部找,
局部找不到去局部外的局部(闭包),然后是全局再到内建
案例分析
代码及运行结果
案例1
运行结果
案例二
运行结果
案例三
运行结果