变量作用域层次
L(local)局部作用域
E(Enclosed)嵌套(闭包)作用域
G(Global)全局作用域
B(Built-in)内置作用域
作用域使用规则...作用域内变量可直接读取, 修改, 删除
上层变量无法读取下层变量, 下层变量可读取上层变量, 但只可读取, 如果需要修改, 则需要关键字声明
从上往下顺序创建,从下往上搜索...作用域
L(local)局部作用域
作用域范围
只在当前代码块或者当前函数中有效
注意: 当在外部调用时, 会抛出 NameError
def local():
total...作用域范围
整个闭包函数(outer)内有效, 但是嵌套函数(inner)内定义的变量, 在闭包(outer)内会报错
def outer():
out_total = 1 # 闭包...Update nonlocal out_total", out_total)
def global_inner():
global out_total
# 修改的是全局变量的