满足闭包的三个条件:

1).有外部函数和内部函数这样的结构

2).外部函数中定义的变量被内部函数所使用

3).内部函数对象作为返回值被外部函数返回

演示闭包的定义和使用:
def outer():
a=10
def inner():
print(a+10)
return inner i=outer()
i()
print(i,type(i))
强化闭包的使用:

案例1:
def outer():
# count=[0]
count=0
def inner():
nonlocal count
# count[0]+=1
count+=1
print('hello,hank,%s haha'%count)
return inner() i=outer()
j=outer()
print(id(i),id(j)) def outer():
num1=10
num2=20
def inner(num3):
print(num1+num3)
print(num2+num3)
return inner i=outer()
i(100)
outer()(200)

最新文章

  1. 在Redhat上为.Net 项目构建基于Jenkins + Github + Mono 的持续集成环境
  2. sql中对于case when...then...else...end的写法和理解
  3. php进阶函数
  4. ANSI C与GNU C
  5. [C#] 與Android共舞–手機post資料給Server (转帖)
  6. hdu2072 字典树
  7. makefile、gdb使用记录
  8. Tsar 服务器系统和应用信息的采集报告工具
  9. Nutshell.ThreadWorkerPool .Net线程池设计
  10. 思维方式--SMART原则
  11. CodeForces 711D Directed Roads
  12. python 在mongo 中建立索引
  13. 【Python】生成器、回溯和八皇后问题
  14. Oracle删除死锁进程的方法
  15. Python待分析的模块
  16. 如何生成CA证书
  17. 突然觉得前端js挺不错的
  18. python3+django2 开发易语言网络验证(中)
  19. Linux命令收集
  20. js根据服务端返回的时间倒计时

热门文章

  1. Deep Q-Network 学习笔记(六)—— 改进④:dueling dqn
  2. ASP.NET MVC 获得 view 中的HTML并将其中的内容自动转换成繁体中文。
  3. Session和Cookie之间区别与联系
  4. 软件架构系列一:C4模型
  5. python数据类型之集合
  6. kubernetes学习资源
  7. set集合去重机制
  8. CSS-带尖角的对话框
  9. 小程序视图层(xx.xml)和逻辑层(xx.js)
  10. 非J2EE部署解决方案