Python 入门之 闭包

1、闭包

(1)在嵌套函数内使用(非本层变量)和非全局变量就是闭包

(2)_ closure _ 判断是不是闭包

def func():
a = 1
def foo():
print(a)
print(foo.__closure__) # 判断是不是闭包
func()
def wrapper():
a = 1
def inner():
print(a)
return inner
ret = wrapper() a = 2
def wrapper():
def inner():
print(a)
return inner
ret = wrapper() def wrapper(a,b):
def inner():
print(a)
print(b)
inner()
print(inner.__closure__)
a = 1
b = 2
wrapper(11,22)

(3)闭包的作用:

<1> 保存局部信息不被销毁,保护数据的安全性

<2> 在装饰器中使用

(4)闭包的应用:

<1> 可以保存一些非全局变量但是不易被销毁、改变的数据。

<2>在 装饰器中

最新文章

  1. 在计算机 . 上没有找到服务 WAS
  2. Python Day03
  3. Java EE 编程中路径
  4. Windows Azure Virtual Machine (1) IaaS用户手册
  5. 哈希表用于Key与Value的对应
  6. ABAP 没有地方输入\H 进入DEBUG 怎么办?
  7. ToggleButton与Switch
  8. Bootstrap的宽度和分辨率的差别
  9. linux 下 NetBeans 字体大小设置
  10. C语言嵌入式系统编程修炼之五:键盘操作
  11. Gallery过时替代方案HorizontalScrollView
  12. java中的词汇
  13. hibernate 返回对象指定属性,需要返回的列,可以直接返回 对象属性
  14. java---- XMLEncoder 和 XMLDecoder 和 xSteam工具使用
  15. 《Java大学教程》—第16章 二维数组
  16. mysql与mysqli的区别
  17. JS 格式化日期时间
  18. 在centos7上修改docker加速镜像为阿里云
  19. ctrl c 中文字符到 vnc 里,中文字符已经被转码
  20. 2018.12.22 bzoj3926: [Zjoi2015]诸神眷顾的幻想乡(广义后缀自动机)

热门文章

  1. Java面试之基础篇(5)
  2. 目标检测 | OHEM
  3. Swiper 的引入
  4. Zabbix MySQL监控模板添加
  5. K8S简介
  6. Task的用法
  7. (58)PHP开发
  8. bootstrap editable初始化后表单
  9. 9.并发编程--ThreadLocal
  10. ArrayList类源码浅析(一)