文章目录
一、python 闭包
1. 什么是闭包
- Python 函数是支持嵌套的。如果在一个内部函数中对外部函数作用域(非全局作用域)的变量进行引用,那么内部函数就会被称为闭包。
- 闭包需要满足如下3个条件:
① 存在于两个嵌套关系的函数中,并且闭包是内部函数;
② 内部函数引用了外部函数的变量;
③ 外部函数会返回内部函数的函数名。
def outer(start=0):
count=[start]
def inner():
count[0]+=1
return count[0]
return inner
out = outer(5)
print(out())
具体代码走向如下所示
2. 示例
演示内置函数
def a(): #1 定义外部函数
b=1 #3 外部函数代码
def c(): #4 定义内部函数
print(b) #6 执行内部函数的代码
c() #5 调用内部函数
a() #2 调用外部函数
#输出结果
1
- 把内部函数返回(闭包的必要条件),使得外部可以用接收返回值的方式来访问内部函数
def a():
def b():
return 1 #定义内部函数的返回值为1
return b #定义外部函数的返回值为内部函数
rst=a() #接受外部函数的返回值,也就是内部函数
print(rst) #rst 就是内部函数
print(rst()) #rst()是调用内部函数
print(a()())