变量作用域
- 变量作用域范围限制
- 按照作用域分类:
- 全局(global):在函数外部定义
- 局部(local):在函数内部定义
- 变量的作用范围:
- 全局变量:在整个全局范围都有效
- 全局变量在局部可以使用(即函数内部可以使用函数外部定义的变量)
- 局部变量可以在局部范围使用
- 局部变量无法在全局范围使用
- LEGB
- L(Local)局部作用域
- E(Encolsing function local)外部潜逃函数作用域
- G(Global module)函数定义所在模块作用域
B(Buildin)python内置模块作用域
提升局部变量为全局变量
def fun(): global b1 b1=100 print("I am in fun") b2=99 print(b2) print(b1) fun()
Globals,Locals函数
- 可以通过Globals,Locals显示出全局变量和局部变量
- Globals和Locals是内建函数
- 参看案例
a=100
b=200
def fun(c,d):
e=111
print('local={0}'.format(locals()))
print('globals={0}'.format(globals()))
fun(300,400)