1、全局语句 global
m = 100
n = 200
def f():
print(m+5) #引用全局变量m
n += 10 #错误,n 在赋值语句前面,解释为局部变量(不存在)
#测试代码
f()
报错,输出:105 UnboundLocalError
可以在 f() 中加入 global n
2、非局部语句 nonlocal
表明变量不是所在区块的局部变量,而是上级函数体中定义的局部变量
1、全局语句 global
m = 100
n = 200
def f():
print(m+5) #引用全局变量m
n += 10 #错误,n 在赋值语句前面,解释为局部变量(不存在)
#测试代码
f()
报错,输出:105 UnboundLocalError
可以在 f() 中加入 global n
2、非局部语句 nonlocal
表明变量不是所在区块的局部变量,而是上级函数体中定义的局部变量