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