闭包的条件
1.外部函数中定义了内部函数
2.外部函数有返回值
3.外部函数的返回值是内部函数的函数名字
4.内部函数对外部函数的变量进行了修改
大概是这个一个格式
def 外部函数():
a = 0
.........
def 内部函数():
nonlocal a
a = 100
return 内部函数
def func(a, b): def line(x): nonlocal a a = 3 return a * x - b return line line = func(2, 3) print(line(5))
作用:内部函数用来修改外部函数的变量(可以类比js中闭包的概念,我感觉差不多)