再说说闭包之前,先说一说什么是外函数,什么是内函数?

  外函数:函数A的内部定义了函数B,那么函数A就叫做外函数

  内函数:函数B就叫做内函数

什么是闭包?

  在一个外函数中定义了一个内函数,内函数里运用了外函数的临时变量,并且外函数的返回值是内函数的引用。这样就构成了一个闭包。

  一般情况下,在我们认知当中,如果一个函数结束,函数的内部所有东西都会释放掉,还给内存,局部变量都会消失。但是闭包是一种特殊情况,如果外函数在结束的时候发现有自己的临时变量将来会在内部函数中用到,就把这个临时变量绑定给了内部函数,然后自己再结束。

def outer(a):b = 10def inner():print(a+b)return innerif __name__ == '__main__':demo = outer(5)demo()demo2 = outer(7)demo2()

转载于:https://www.cnblogs.com/zhuifeng-mayi/p/9218762.html

42、谈谈你对闭包的理解?相关推荐

  1. 面试官:谈谈对JS闭包的理解及常见应用场景(闭包的作用)

    文章目录 对JS闭包的理解及常见应用场景(闭包的作用) 1.变量作用域 2.如何从外部读取函数内部的变量? 3.闭包概念 4.闭包用途 5.闭包的理解 6.闭包应用场景 setTimeout传参 回调 ...

  2. 谈谈你对闭包的理解?

    闭包这个概念好难理解,身边朋友们好多都稀里糊涂的,稀里糊涂的林老冷希望写下这篇文章能够对稀里糊涂的伙伴们有一些帮助~ 请大家跟我理解一下,如果在一个函数的内部定义了另一个函数,外部的我们叫他外函数,内 ...

  3. javascript中重要概念-闭包-深入理解

    在上次的分享中javascript--函数参数与闭包--详解,对闭包的解释不够深入.本人经过一段时间的学习,对闭包的概念又有了新的理解.于是便把学习的过程整理成文章,一是为了加深自己闭包的理解,二是给 ...

  4. 谈谈对APC的一点理解

    谈谈对APC的一点理解 异步过程调用(APCs) 是NT异步处理体系结构中的一个基础部分,理解了它,对于了解NT怎样操作和执行几个核心的系统操作很有帮助. 1) APCs允许用户程序和系统元件在一个进 ...

  5. JS闭包的理解及常见应用场景

    JS闭包的理解及常见应用场景 一.总结 一句话总结: 闭包是指有权访问另一个函数作用域中的变量的函数 1.如何从外部读取函数内部的变量,为什么? 闭包:f2可以读取f1中的变量,只要把f2作为返回值, ...

  6. 关于Javascript闭包的理解

    一.什么是闭包? "官方"的解释是:所谓"闭包",指的是一个拥有许多变量和绑定了这些变量的环境的表达式(通常是一个函数),因而这些变量也是该表达式的一部分. 相 ...

  7. python闭包怎么理解_Python 闭包的理解

    Last Updated on 2019年10月15日 Python中的闭包是一个比较模糊的概念,不太好理解,我最近的面试中也被问及,在一个单例模式的实现上,我用装饰器实现单例,然后面试官就问到了我对 ...

  8. 面试精讲之面试考点及大厂真题 - 分布式专栏 04 谈谈你对分布式的理解,为什么引入分布式?

    04谈谈你对分布式的理解,为什么引入分布式? 引言 刚刚毕业第一份工作,没接触过分布式微服务相关的知识,后来换工作才了解到这些,面试官看了我简历里写了分布式相关,就开始揪住这个问题问,虽然一知半解地说 ...

  9. JVM面试1 :谈谈你对Java的理解

    谈谈你对Java的理解 如何查看字节码? 使用 javap

最新文章

  1. TinyMind 汉字书法识别竞赛开启总决赛啦!!
  2. pandas.read_csv()跳过读取文件报错行
  3. ACM中java的使用 (转)
  4. Mybatis的selectKey使用
  5. 求高光谱图像相关系数矩阵
  6. Dubbo(六)之属性配置
  7. ReviewForJob——最小生成树(prim + kruskal)源码实现和分析
  8. 力扣529.扫雷游戏
  9. qt 串口粘包_用Qt 5写一个串口收发桌面工具
  10. latex table 表格 文字太长 自动换行
  11. ZigBee-CC2530单片机 - 4路硬件定时器PWM输出
  12. 常用电子元器件基本知识整理
  13. countifs函数的使用方法,多条件函数运用
  14. 正睿20秋季普转提day3
  15. Glide4.7加载图片RoundedCorners跟CenterCrop冲突问题解决
  16. 【转载】超简单集成HMS ML Kit 人脸检测实现可爱2D贴纸
  17. python - 图像处理 - 图片拼接和堆叠
  18. Rstudio手动安装程序包
  19. 【javascript-基础小练习】开发一款软件,根据公式(身高-108)*2=体重,可以有10斤左右的浮动。来观察测试者体重是否合适
  20. [译]用C#创建一个屏幕保护程序

热门文章

  1. linux oracle 配置监听器
  2. SYSENTER、SYSEXIT—快速系统调用
  3. ActiveX中添加对话框并显示
  4. 线索二叉树(c/c++)
  5. vuex状态管理简单入门
  6. 用MathType编辑带点星号的流程
  7. Linux中LVM(逻辑卷管理)的使用
  8. Oracle数据库实用脚本
  9. java 画笔跟swing组件_java组件及事件处理(简单基础的界面操作)1
  10. Android数据库文件的导出