作用:
- 在使外函数中定义的局部变量可以在内函数中引用并修改
例1:外函数中定义的变量可以正常在内涵数中引用
# 定义一个外函数
def outer():
# a是局部变量
a = 2
# 定义一个内函数
def inner():
print(a)
inner()
outer()
运行上面的可以正常返回2
例2:在内函数中对外函数中定义的局部变量进行修改,会报错
# 定义一个外函数
def outer():
# a是局部变量
a = 2
# 定义一个内函数
def inner():
a += 1
print(a)
inner()
outer()
报错:
对于上面的报错,可以使用关键nonlocal
# 定义一个外函数
def outer():
# a是局部变量
a = 2
# 定义一个内函数
def inner():
nonlocal a
a += 1
print(a)
inner()
outer()
运行上面的代码,正常打印出返回值:3
注意:这里使用关键字nonlocal是使外函数中的局部变量可以在内函数中引用并修改,并不是将局部变量变成了全局变量,它仍然是局部变量