范文健康探索娱乐情感热点
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

Python基础之闭包

  一.闭包的定义:
  在一个函数的内部,再定义一个函数(内部函数)。这个内部函数引用了外部函数的变量,并且外部函数返回这个内部函数,我们把这个使用外部函数变量的内部函数称为 闭包 。
  简而言之,闭包就是能够读取外部函数内的变量的函数。
  例如:def f1():  # f1外部函数     n = 999  # n:外部函数的变量      def f2():  # 内部函数         print(n)  # f2中引用f1的变量      return f2  # 外部函数f1返回内部函数f2,函数f2即是闭包  #调用法一 f1()() # 调用法二 # result=f1() # result()
  形成闭包的两个条件:函数的返回值必须是被包函数对象(函数名) 闭包中必须引用了外层函数作用域内的变量或者形参
  二.闭包的用途
  ① 可以读取函数内部的变量
  ② 将一些变量的值始终保存到内存中
  1.读取函数内部的变量
  在一般情况下,在函数外部我们是不能访问到函数内部的变量的。但是,有时想要在函数外部能够访问到函数内部的变量,那么就可以使用闭包。
  例如:def f1():     a=100 print(a) #NameError: name "a" is not defined
  上面的代码可以看出,print(a)会抛异常NameError: name "a" is not defined。在函数f1的外面无法访问它的变量的。
  在函数f1里面定义一个闭包函数就可以访问到了
  例如:def f1():     a = 100     def f2():         return a     return f2 result = f1() a = result() print(a)
  2.将一些变量的值始终保存到内存中def f1(n1):  # 外部函数      def f2(n2):  # 内部函数         result = n1 + n2  # 内部函数引用了外部函数的变量n1         print("计算结果:", result)      return f2 f=f1(1) #创建闭包实例 #执行闭包 f(2) f(3)
  运行结果:计算结果: 3 计算结果: 4
  通过上面的输出结果可以看出闭包保存了外部函数内的变量n1的值1,每次执行闭包都是在n1 = 1 基础上进行计算的。
  三.闭包的缺点
  1.由于闭包会使得函数中的变量都被保存在内存中,会增加 内存消耗 ,所以不能滥用闭包,否则会造成程序的性能问题,可能导致内存泄露
  2.闭包无法改变外部函数局部变量指向的内存地址
  3.返回闭包时,返回函数不要引用任何循环变量,或者后续会发生变化的变量
  四.判断一个函数是否是闭包
  判断一个函数是不是闭包,可以查看它的 closure 属性。如果该函数是闭包,查看该属性将会返回一个cell对象组成的tuple。如果我们分别对每个cell对象查看其cell_contents属性,返回的内容就是闭包引用的自由变量的值。 def outer(args):     a = 10     b = 15     c = 25     def inner():         return a + b+args     return inner out = outer(4)  # 闭包实例 print(out.__closure__)
  运行结果:(   ,    ,     )
  闭包的__closure__方法,可以展示出闭包储存了外部函数的两个变量,cell的内存地址是什么,在cell里面储存的对象类型是int,这个int储存的内存地址是什么。
  闭包的__closure__方法,可以查看每个cell对象的内容 def outer(args):     a = 10     b = 15     c = 25      def inner():         return a +b+ args      return inner  out = outer(4)  # 闭包实例 # print(out.__closure__) for i in out.__closure__:     print(i.cell_contents)
  运行结果:10 4 15
  cell_contents解释了局部变量在脱离函数后仍然可以在函数之外被访问的原因,因为变量被存储在cell_contents中了。

大众威然竟然是中国特供车,就是途昂换了个MPV的马甲在上汽大众推出威然的那一段时间,很多人以为它将会成为别克GL8最大的对手,甚至会取代GL8的位置,但现实却啪啪打脸,按理说凭借高大上的品牌影响力,威然不至于如此落魄,到底是什么原因10。19万起售,捷途X90PLUS正式上市,两种动力,567座任选9月17日,2021款捷途X90PLUS正式上市,新车共推出5款车型,售价区间为10。1913。99万,每款车型均567座三种座椅布局,这也意味着消费者共有15种选择。外观方面,捷比亚迪F3入门车型降至4万内,16年间卖了300多万辆,练手车首选从2003年进入汽车行业到成为国内市值第一的上市车企,比亚迪用了18年时间,回顾比亚迪汽车的发展史,F3绝对算得上是封神自作,它是比亚迪的首款车型,于2005年上市,16年间卖了36。98万起售,五菱星辰上市,标配1。5T发动机,系五菱首款银标SUV在9月16日的五菱之夜上,五菱星辰正式上市,它是五菱首款银标SUV,新车共推出5款车型,售价区间为6。989。98万,全系标配1。5T发动机。五菱星辰定位紧凑型SUV,外观采用五菱小米有品上架夏季神器!轻松带来冰凉爽感,外观比优衣库时髦如果说手机的时尚有华为三星和苹果三种。那么T恤的时尚一定只有一种,那就是万能衫白T恤。无论男女老少,都能搭出不同的时髦感休闲度假日常通勤晚宴party质感优秀的白T,亲和简单干净。首款拥有OLED屏的轻薄本发布了,小米诠释何为国产之光2021年3月30日,小米春季新品发布会正式结束,雷总这次给我们带来了很多新的产品,同时也出现了很多捧腹大笑的梗,列如不服跑个原神?还有200w小米新logo等。不过今天的主角还是新战略开辟未来十年新格局千呼万唤始出来,小米终于造车了随着智能领域的不断深入发展,现如今,在智能手机电脑的基础上,新能源汽车应运而生,成为了目前又一发展热点,国内众多企业竞相探索,广大用户也对此领域充满了好奇心和期待。近日前,小米宣布空调也玩新花样?小米发布米家新风空调,是下个趋势吗?经常关注手机圈的朋友们肯定都看了前几天小米春季发布会,在这次的发布会中,小米一口气发布了手机智能穿戴智能家居各个领域新品,被称之为是史上最多新品的发布会。虽然说小米11系列是最受关小米有品百元空调,1s制冷100档风速,租房党太顶了随着科技的发展,人们也有越来越多的科技手段来面对各种各样的情况。比如即将到来的夏天,基本上都会在空调里度过,不过对于小编这样有轻微鼻炎的人来说,长时间待在空调里实在是太辛苦了。所幸不开窗也想畅快呼吸,你可能需要它入冬以来,各地的空气质量都不太乐观,PM2。5给人体带来的危害在这几年里早已深入人心。可能很多人早已给家中置办好了空气净化器,紧闭门窗一天24小时不停运行。但是问题也随之而来,室内喜迎国内复苏,蓄势海外增长,携程开辟新机新局喜迎国内复苏,蓄势海外增长,携程开辟新机新局202109282221疫情发生之后,许多行业遭受重创,具备跨空间流动高密度接触属性的旅游业,成为受影响最深的代表行业之一,许多人也因此
本轮房地产调控的一点认识过去几轮房地产调控主要是由房价上涨过快引发的调控,调控的手段多采用限购提高首付比例和按揭利率等措施,主要调控对象是购买端。调控政策放松主要是由于经济处于下行周期而逐步放开。本轮调控恒大地产更换董事长,恒大汽车遭高管减持昨日许家印辞去恒大地产集团董事长的消息引起了不小的波动。根据公告信息,许家印不再担任恒大集团旗下的恒大地产集团董事长,柯鹏不再担任总经理法人等职务,信任董事长总经理法人为赵长龙。恒科比布莱恩特,惊涛骇浪短暂的一生!17岁进入NBA,因年龄太小,科比的所有程序和合同,财政,都是父母负责。1996科比加盟湖人,新秀合同3年350万,签约阿迪达斯,6年4800万,1999年科比续约湖人6年7800清明时节雨纷纷,一键除湿不求人CiaoBello,我是老房。冬天刚刚过去,转眼间清明已经临近。清明时节雨纷纷,每天下雨烦死人。魔都的潮湿天气从清明节左右就已经开始了。想到再过两三个月就是梅雨季,每天淅淅沥沥的雨宅家办公,如何打造整洁桌面?CiaoBello,我是老房。突如其来的疫情,给足了咱们宅在家里的时间,终于能静下心来好好收拾一下杂乱了许久的桌面。首先来看下老房家里书桌的大致情况。书桌为宜家BEKANT贝肯特右聊聊Jmeter如何并发执行Python脚本来源AirPython作者星安果1。前言大家好,我是安果!最近有小伙伴后台给我留言,说自己用Django写了一个大文件上传的Api接口,现在想本地检验一下接口并发的稳定性,问我有没聊聊Jmeter如何并发执行Python脚本来源AirPython作者星安果1。前言大家好,我是安果!最近有小伙伴后台给我留言,说自己用Django写了一个大文件上传的Api接口,现在想本地检验一下接口并发的稳定性,问我有没用Python帮小伙伴找到头上一片绿的证据公众号Python技术作者派森酱这周末有个小伙伴找到派森酱,说他女票这几天整天都在上网,也不知道浏览什么内容,只要这个小伙伴凑上去瞧瞧就只看见了桌面,查看浏览器历史记录也被删除的一用Python带你看豆瓣上征婚交友的小姐姐们作者某某白米饭来源Python技术派森酱在刷豆瓣的时候发现,豆瓣上居然还有一个叫我被豆油表白了的交友话题,阅读量居然高达8087734次,拥有1000篇话题,几乎每篇平均被阅读了8败了,苹果彻底败了文章首发于微信公众号非著名程序员,欢迎大家关注。大家好,我是校长。苹果又败诉了,可谓是开发者的福音。01hrEpicGames案备受瞩目的EpicGames诉苹果一案今天达成判决,苹果这是打造了一个产学研销为一体的生态平台啊文章首发于微信公众号非著名程序员,欢迎大家关注。大家好,我是校长。今天聊一聊昨天苹果的一个大事件吧。昨天,苹果宣布为小学生与教育工作者推出全新资源,包括新的人人能编程早期学习者活动