0%

Python基础--闭包

python

闭包

闭包的定义

在函数嵌套的前提下,内部函数使用了外部函数的变量,并且外部函数返回了内部函数.使用外部函数变量的内部函数被称作闭包

闭包的必须条件

  • 在函数嵌套(函数里面再定义函数)的前提下
  • 内部函数使用了外部函数的变量(还包括外部函数的参数)
  • 外部函数返回了内部函数

闭包的代码

这个是简单的代码实例

1
2
3
4
5
6
7
8
9
10
11
12
13
def set_fun():
i = 0
def call_fun():
nonlocal i # 修改外层函数参数
i += 1
print("执行的次数:", i)
return call_fun

fun = set_fun()
fun()
fun()
fun()
fun()

当执行这个代码的时候你回发现i的值一直是在累加的,这个就是闭包最明显的作用了.把函数加载到内存中,随时等待被调用,闭包一般和装饰器一起用的,这里先说明下闭包,后面在详细说下装饰器.