Python中nolocal是什么意思?Python3的nolocal怎么用

很多小伙伴在学习python基础知识的时候应该都知道global这个关键字的作用就是在局部变量之中去声明全局变量,让其能够在结构外部去使用 。那么nolocal这个python3才推出的关键字实际上是对它的功能弥补,下文会有详细讲解,一起往下看看学习吧 。

Python中nolocal是什么意思?Python3的nolocal怎么用


那么首先就是要来介绍一下nolocal关键字的作用,它能够在函数、循环、类、if条件等等作用域之中用来修改外层变量,但不包括全局变量 。
例如现在定义了一个函数,然后在这个函数的作用域第一行代码处声明了一个变量 。然后在此之下又去定义了一个函数,在这个函数内用nolocal关键字修饰该变量,之后就可以对这个变量进行实际的操作并且返回了,详细代码示例如下所示:
def work():    x = 0    def new_work():        nonlocal x        x=x+3        return x    return new_workf=work()print(f())print(f())print(f())# 结果369从代码运行的结果来看第一次调用结果为0+3得到3,那么剩下的两次调用结果为6和9的原因就是因为new_work()这个函数返回出来的x实际上已经保存在了声明对象f中,再次调用时就会把他作为参数去使用,这个实际上和闭包以及递归算法优点类型 。
而实际上使用nolocal是为了解决函数内部的函数或者是其他作用域无法访问到外层作用域的问题 。
【Python中nolocal是什么意思?Python3的nolocal怎么用】以上就是关于“Python中nolocal是什么意思?Python3的nolocal怎么用”的全部内容了,希望对你有所帮助 。

    猜你喜欢