闭包的概念
  必须要有函数嵌套,内部函数调用外部函数的变量
简单的例子
  此种方法会导致每次使用内部函数inner的时候需要不断的调用外部函数。
  结果导致外部函数的变量不断的被调用被释放,比较低效,相当于本来一个函数你现在用起来需要用到两个函数。
 def  outer():
a = 1
def inner():
print(a)
inner()
print(inner.__closure__) # 输出有cell 表示为闭包,为None不是闭包
outer() # (<cell at 0x0000000000150108: int object at 0x000007FEE62BD420>,)
常用的闭包用返回值完成

  通过返回值拿到内部函数的地址,然后赋值直接运行即可直接运行内部函数
  从而让内部函数调用的变量可以长久保存,而不至于每次使用创建结束释放这样低效的行为
 def  outer():
a = 1
def inner():
print(a)
return inner
inn = outer()
inn()
print(inn.__closure__) # (<cell at 0x0000000000340108: int object at 0x000007FEE0DFD420>,)

												

最新文章

  1. ORA-12560: TNS: 协议适配器错误 ORA-12154: TNS: 无法解析指定的连接标识符
  2. TRACERT命令
  3. 数据库MySQL开篇
  4. 使用xmarks同步 chrome ie firefox safari书签
  5. iOS.StaticLibrary.1-avoid-duplicate-symbol-in-static-library[draft]
  6. 天大 ACM 1090. City hall
  7. request.setCharacterEncoding 和常用内置对象 跳转
  8. eclipse下安装Extjs的插件spket
  9. js获取jsp中的变量值
  10. Activity的启动过程
  11. JavaScript之&lt;noscript&gt;标签简介
  12. openGl超级宝典学习笔记 (1)第一个三角形
  13. Cocos2d-x 单点触摸--让我们用手指动起来的精灵
  14. Git 上传 GitHub
  15. 数论:px+py 不能表示的最大数为pq-p-q的证明
  16. angular 分页插件的使用
  17. java 判断元素是否在数组内
  18. css3兼容性检测工具
  19. Javascript多线程
  20. [T-ARA][남주긴 아까워][给别人可惜了]

热门文章

  1. python descriptor 详解
  2. [06] Bean属性的注入
  3. Apache Beam: 下一代的大数据处理标准
  4. 【LeetCode106】Construct Binary Tree from Inorder and Postorder Traversal★★
  5. 阿里云ubuntu 16.04搭建odoo11服务器
  6. Ubuntu16.04下完美切换Python版本
  7. 给 MSYS2 添加中科大的源
  8. 【工作感悟】Android 开发者,如何提升自己的职场竞争力?
  9. .net 2.0 使用linq
  10. Jmeter-使用Ultimate Thread Group插件来设置负载场景