python中什么是闭包,通俗易懂解释python闭包
谈谈对Python中闭包的理解。Python中的闭包是一个比较模糊的概念,很多朋友都觉得很难理解。但是,随着深入学习,你会发现闭包无论如何都是需要理解的。在这里,我将阐述一下自己对闭包的理解,希望对你有所帮助~
对闭包的理解我们可以把闭包理解为一个特殊的函数,它由两个嵌套的函数组成,称为外函数和内函数。外部函数的返回值是内部函数的引用,构成了闭包。
闭包的格式在下面的伪代码中描述。
def outer function(parameter):def inner function():print( inner function execution ,parameter)return inner function reference=outer function( incoming parameter )对inner function()参数的引用在outer function中,不一定要有,要看情况而定,但在inner function中通常是可用和使用的。
Case def func (a,b):def line(x):return a * x-b return line line=func(2,3) print (line (5))结果为7
在这种情况下,外部函数func接收参数a=2,b=3,内部函数行接收参数x=5。在内部函数体中,计算a*x-b的值,即25-3,作为返回值。外部函数返回内部函数的引用,引用内部函数行在内存中的初始地址。最后调用内部函数line()得到返回值7。
在内部函数中修改外部函数的值通常会在函数结束时释放临时变量。但是在闭包中,因为在内部函数中使用了外部函数的临时变量,所以外部函数会将临时变量与内部函数绑定,这样虽然外部函数结束了,但是调用内部函数时仍然可以使用临时变量(闭包外层的参数可以在内存中进行保留)。
如果要在内部函数中修改外部函数的值,需要用nonlocal关键字声明变量。
Def func (a,b): def line (x):非本地a a=3 return a * x-b return line line=func(2,3) print (line (5))此时运行结果为:12
Python中闭包的使用,闭包的主要用途是为了decorators的实现,这个会在以后的博客 (_) 中详细讲解
这是我对闭包的理解。希望能对初学者有所帮助。欢迎朋友们批评指正~
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。