嵌套函数
在一个函数内部定义的函数称为嵌套函数
闭包的形成
内层函数对外层函数非全局变量的引用就会形成闭包
闭包作用
保证数据安全
例子
li = []
def average(value):li.append(value)return sum(li)/len(li)
如上面代码li[]这个列表人人都能修改,这样就很不安全,若是如下面代码把他放到函数里面,这样我们就非常安全了。
def average(value):li = [] li.append(value)return sum(li)/len(li)
但是样就带来一个问题,所有的局部变量都会释放,这样li[]里的数据就没有了,如何继续保存这个数据就需要用到我们的闭包了,如下面代码,再定义一个函数
def average(value):li = []def inner(value):li.append(value)return sum(li)/len(li)return inner
如下列代码调用这个average函数,avg的结果就是inner,这样就通过闭包的形式把这个变量保存了起来,函数执行完后,这个变量不会消失。
avg = average()
print(avg(6000))
总结
函数中被引用的非全局变量也称自由变量,这个自由变量会与内层函数产生一个绑定关系,自由变量不会再内存中消失
不嫌弃的点点关注,点点赞 ଘ(੭ˊᵕˋ)੭* ੈ✩‧₊˚