前言
Python nonlocal关键字。
Operating System: Ubuntu 22.04.4 LTS
参考文档
介绍
在Python中,nonlocal
关键字用于在嵌套函数中修改嵌套作用域(非全局作用域)中的变量。通常情况下,在函数内部赋值的变量默认是局部变量,如果想要在函数内部修改外部作用域(但不是全局作用域)中的变量,就需要使用nonlocal
关键字。
下面是一个使用nonlocal
关键字的例子:
def outer():
count = 0 # 这里的count是outer函数的局部变量
def inner():
nonlocal count # 告诉Python这里的count不是inner函数的局部变量,而是外部作用域中的变量
count += 1 # 现在我们可以修改count了
print(count)
return inner
my_func = outer()
my_func() # 输出 1
my_func() # 输出 2
在这个例子中,inner
函数内部的nonlocal count
声明指明了count
不是inner
函数的局部变量,而是outer
函数的局部变量。这样,在inner
函数内部对count
的修改就会影响到outer
函数作用域中的count
变量。
如果不使用nonlocal
关键字,直接在inner
函数中修改count
,将会引发一个错误,因为默认情况下,赋值操作会创建一个新的局部变量,而不是修改外部作用域中的变量。
需要注意的是,nonlocal
关键字声明的变量不能是全局变量,也就是说,它只能用于已经存在的局部变量。如果想要修改全局变量,应该使用global
关键字。
结语
第三百零八篇博文写完,开心!!!!
今天,也是充满希望的一天。