python闭包函数是什么

图片[1]-python闭包函数是什么-uusu优素-乐高,模型,3d打印,编程

函数身为第一类对象,它可以作为函数的返回值返回,现在我们来考虑如下的例子:

defprint_msg():
#print_msg是外围函数
msg="zenofpython"
defprinter():
#printer是嵌套函数
print(msg)
returnprinteranother=print_msg()#输出zenofpythonanother()

这段代码和前面例子的效果完全一样,同样输出 "zen of python"。不同的地方在于内部函数printer直接作为返回值返回了。

一般情况下,函数中的局部变量仅在函数的执行期间可用,一旦print_msg()执行过后,我们会认为msg变量将不再可用。然而,在这里我们发现 print_msg 执行完之后,在调用 another 的时候 msg 变量的值正常输出了,这就是闭包的作用,闭包使得局部变量在函数外被访问成为可能。(更多学习内容,请点击Python学习网)

看完这个例子,我们再来定义闭包,维基百科上的解释是:

在计算机科学中,闭包(Closure)是词法闭包(LexicalClosure)的简称,是引用了自由变量的函数。这个被引用的自由变量将和这
个函数一同存在,即使已经离开了创造它的环境也不例外。所以,有另一种说法认为闭包是由函数和与其相关的引用环境组合而成的实
体。

这里的another就是一个闭包,闭包本质上是一个函数,它有两部分组成,printer函数和变量msg。闭包使得这些变量的值始终保存在内存中。

原文来自:https://www.py.cn
© 版权声明
THE END
喜欢就支持一下吧
点赞10 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容