问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

python什么是闭包 闭包的作用域

发布网友 发布时间:2022-03-26 02:18

我来回答

3个回答

懂视网 时间:2022-03-26 06:39

在Python程序中创建、改变、查找变量名时,都是在一个保存变量名的空间中进行,而这个空间被称之为作用域。

  

  Python是一种跨平台的计算机程序设计语言。是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本shell,随着版本的不断更新和语言新功能的添加,越来越多被用于独立的、大型项目的开发。自从20世纪90年代初Python语言诞生至今,它已被逐渐广泛应用于系统管理任务的处理和Web编程。

  

  

热心网友 时间:2022-03-26 03:47

在函数中可以定义另一个函数时,如果内部的函数引用了外部的函数的变量,则可能产生闭包。
闭包可以用来在一个函数与一组私有变量之间创建关联关系。
在给定函数被多次调用的过程中,这些私有变量能够保持其持久性。
形成闭包的三个条件
必须有一个内嵌函数—这对应函数之间的嵌套;
内嵌函数必须引用一个定义在闭合范围内的变量—内部函数引用外部变量;
外部函数必须返回内嵌函数—必须返回内部函数。
换句话来说:闭包的概念很简单,一个可以引用在函数闭合范围内变量的函数,即内部函数,只有那个内部函数才有所谓的__closure__属性。
闭包的原理
形成闭包之后,闭包函数会获得一个非空的_Closure_属性,这个属性是一个元组。
组里面的对象为cell对象,而访问cell对象的cell_contents属性则可以得到闭包变量的当前值。
而随着闭包的继续调用,变量会进行再次更新。由此可见,一般形成闭包之后,Python确定会将_closure_和闭包函数绑定作为储存闭包变量的场所。
闭包的好处是什么?
其实,闭包并不是必须的。
没有闭包的话,Python的功能不会受到任何影响;但有了闭包之后,可以提供一种额外的解决方案。

热心网友 时间:2022-03-26 05:05

简单说,闭包就是根据不同的配置信息得到不同的结果

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

python实例

看概念总是让人摸不着头脑,看几个python小例子就会了

def make_adder(addend):
def adder(augend):
return augend + addend
return adder

p = make_adder(23)
q = make_adder(44)

print p(100)
print q(100)

运行结果:
123
144

分析一下:

我们发现,make_adder是一个函数,包括一个参数addend,比较特殊的地方是这个函数里面又定义了一个新函数,这个新函数里面的一个变量正好是外部make_adder的参数.也就是说,外部传递过来的addend参数已经和adder函数绑定到一起了,形成了一个新函数,我们可以把addend看做新函数的一个配置信息,配置信息不同,函数的功能就不一样了,也就是能得到定制之后的函数.

再看看运行结果,我们发现,虽然p和q都是make_adder生成的,但是因为配置参数不同,后面再执行相同参数的函数后得到了不同的结果.这就是闭包.
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
林钟音律 wow术士部落PVE种族 过几天要玩一个部落术士,不知哪个种族好,因为之前没玩过部落,望大家讲... 魔兽世界术士哪个种族好啊 "NYSMATYC"缩写代表什么? “APESMA”是什么意思? "SMA”代表“楼梯制造商协会”时,它的中文全称是什么? “SMA”代表什么? 在老一辈的育儿观念中,有哪些是不太好的呢? 怎样获取安全员资格证 PYTHON 的变量作用域与内存分配 Python 中作用域与命名空间的问题? Python 的类中到底有没有建立作用域 Python语言中作用域怎么理解? 苹果智能手机与其它品牌手机使用的实际优势在哪里? 苹果手机的优势是什么啊? 苹果手机的优点是什么? IPHONE手机有什么优点?它的好处到底在哪里? iPhone手机的优势究竟在哪里? 苹果手机比其他手机究竟好在哪里 苹果手机有什么优点?有什么缺点? 苹果公布业绩,苹果有手机有何优势? iPhone到底好用在哪里?为什么很多人都在买苹果手机? 苹果手机的好处在哪里 苹果手机那么贵,为什么还有那么多人用?有什么优势吗? 苹果手机有哪些好处? 苹果手机有什么优缺点? 苹果手机的有哪些优点。 苹果手机优势在哪里 苹果手机到底优秀在哪里?为什么那么多人想买? python变量的作用域到底怎么理解怎么用呢?谢谢! 深入探究Python中变量的拷贝和作用域问题 python 2.7 变量作用域的疑问 python中什么叫局部作用域 python for循环作用域问题 初学python,有关函数作用域问题 python 程序中有多少全局作用域?有多少局部作用域 如何在特定的作用域将python系统函数替换成自己的函数 python函数实参不是的作用域问题,高手来解释下下面的输出? 没看python的基础,求教python变量的作用域问题,下面附代码,感谢! python global的作用域 python中global的作用是什么? python3.5中,无法numpy怎么解决 dra-tl00什么型号? dra-tl00可以无线充电吗? dra-tl00能不能用三网的? 联通短信中心号码怎么设置? 苹果手机里不等于符号怎么打出来? 不等于的符号怎么打?打出来 不等于号怎么打出来?