首页 / 知识
python闭包函数是什么
2023-11-12 13:08:00
函数身为第一类对象,它可以作为函数的返回值返回,现在我们来考虑如下的例子:
defprint_msg():
#print_msg是外围函数
msg="zenofpython"
defprinter():
#printer是嵌套函数
print(msg)
returnprinteranother=print_msg()#输出zenofpythonanother()
这段代码和前面例子的效果完全一样,同样输出"zenofpython"。不同的地方在于内部函数printer直接作为返回值返回了。
一般情况下,函数中的局部变量仅在函数的执行期间可用,一旦print_msg()执行过后,我们会认为msg变量将不再可用。然而,在这里我们发现print_msg执行完之后,在调用another的时候msg变量的值正常输出了,这就是闭包的作用,闭包使得局部变量在函数外被访问成为可能。看完这个例子,我们再来定义闭包,维基百科上的解释是:
在计算机科学中,闭包(Closure)是词法闭包(LexicalClosure)的简称,是引用了自由变量的函数。这个被引用的自由变量将和这
个函数一同存在,即使已经离开了创造它的环境也不例外。所以,有另一种说法认为闭包是由函数和与其相关的引用环境组合而成的实
体。
这里的another就是一个闭包,闭包本质上是一个函数,它有两部分组成,printer函数和变量msg。闭包使得这些变量的值始终保存在内存中。
闭包,顾名思义,就是一个封闭的包裹,里面包裹着自由变量,就像在类里面定义的属性值一样,自由变量的可见范围随同包裹,哪里可以访问到这个包裹,哪里就可以访问到这个自由变量。
以上内容为大家介绍了python培训之闭包函数是什么,希望对大家有所帮助,如果想要了解更多Python相关知识,请关注我们
最新内容
相关内容
python变量赋值是什么
python变量赋值是什么,培训,变量,名称,数字,标准,类型,赋值,声名,字符串,数据类型,1、什么是变量?变量:值会发生变化的的量,与常量相对.2、pythpythoneval函数作用
pythoneval函数作用,培训,字符串,函数,作用,表达式,对象,结果,引号,计算器,以上,pythoneval(str)函数很强大,官方解释为:将字符串str当成有效的pythonprint函数不要换行怎么写
pythonprint函数不要换行怎么写,培训,灵活,函数,对象,参数,文件,空格,结尾,字符,下面,从语法上讲,调用python3.0的print函数有如下的形式:printpython代码如何在命令行运行
python代码如何在命令行运行,代码,培训,路径,空格,文件,下面,以上,目录,更多,内容,我们在编写python代码时,可以在交互模式下运行代码,也可以用python如何自定义一个函数
python如何自定义一个函数,代码,名称,培训,函数,圆括号,参数,定义,表达式,选择性,字符串,python函数是组织好的,可重复使用的,用来实现单一,或相python内置函数在哪
python内置函数在哪,培训,函数,包装,模块,对象,字符串,列表,数据类型,属性,类型,所谓内置函数,就是在Python中被自动加载的函数,任何时候都可以python怎么写多行代码
python怎么写多行代码,代码,培训,情况,示例,字符串,斜杠,方法,行书,括号,有用,在写代码过程中,经常遇到一行代码很长的情况。为了让代码显得整pythonhelp函数怎么退出
pythonhelp函数怎么退出,培训,函数,字母,效果,提示符,窗口,以上,模式,方式,更多,python的help用法及退出方式一、进入交互模式打开cmd命令行python函数返回值是什么
python函数返回值是什么,培训,代码,位置,简介,函数,语句,上面,结束,结果,变量,return语句位置与多条return语句1、python函数使用return语句pythonrange函数怎么用
pythonrange函数怎么用,步长,培训,函数,负数,整数,语法,字母,实例,以上,以下,pythonrange()函数可创建一个整数列表,一般用在for循环中。函数python函数如何不返回none
python函数如何不返回none,培训,函数,语句,变量,赋值,参数,实际,结果,字符串,语法,python中,用def语句创建函数时,可以用return语句指定应该返python函数的高级使用方法
python函数的高级使用方法,代码,函数,灵活,数据,培训,时间,定义,程序,赋值,变量,Python的函数是“一等公民”,因此函数本身也是一个对象,函数既