00308 Python nonlocal关键字


前言

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关键字。

结语

第三百零八篇博文写完,开心!!!!

今天,也是充满希望的一天。


文章作者: LuYF-Lemon-love
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 LuYF-Lemon-love !
  目录