定义闭包,维基百科上的解释是:
在计算机科学中,闭包(Closure)是词法闭包(Lexical Closure)的简称,是引用了自由变量的函数。这个被引用的自由变量将和这
个函数一同存在,即使已经离开了创造它的环境也不例外。所以,有另一种说法认为闭包是由函数和与其相关的引用环境组合而成的实
体。
这里的another就是一个闭包,闭包本质上是一个函数,它有两部分组成,printer函数和变量msg。闭包使得这些变量的值始终保存在内存中。
闭包,顾名思义,就是一个封闭的包裹,里面包裹着自由变量,就像在类里面定义的属性值一样,自由变量的可见范围随同包裹,哪里可以访问到这个包裹,哪里就可以访问到这个自由变量。
更多学习内容,请点击python学习网。
函数身为第一类对象,它可以作为函数的返回值返回,现在我们来考虑如下的例子:
defprint_msg(): #print_msg是外围函数 msg="zenofpython" defprinter(): #printer是嵌套函数 print(msg) returnprinteranother=print_msg()#输出zenofpythonanother()
这段代码和前面例子的效果完全一样,同样输出 "zen of python"。不同的地方在于内部函数printer直接作为返回值返回了。
原文来自:https://www.py.cn© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
暂无评论内容