查看上一节:sort函数
闭包
将函数作为返回值返回,也是一种高阶函数。这种高阶函数我们也称为叫做闭包,通过闭包可以创建一些只有当前函数能访问的变量。可以将一些私有的数据藏到的闭包中。
示例如下:
def fn():
a = 10
# 函数内部再定义一个函数
def inner():
print('我是fn2' , a)
# 将内部函数 inner作为返回值返回
return inner
r = fn()
r()
执行结果为:
在这里r是一个函数,是调用fn()后返回的函数。这个函数实在fn()内部定义的,并不是全局函数,所以这个函数总是能访问到fn()函数内的变量。
# 求多个数的平均值
nums = [50,30,20,10,77]
# sum()用来求一个列表中所有元素的和
print(sum(nums)/len(nums))
执行结果为:
可以看到这就将列表中元素的平均值求出来了。
形成闭包的要件
① 函数嵌套
② 将内部函数作为返回值返回
③ 内部函数必须要使用到外部函数的变量
代码如下:
def make_averager():
# 创建一个列表,用来保存数值
nums = []
# 创建一个函数,用来计算平均值
def averager(n) :
# 将n添加到列表中
nums.append(n)
# 求平均值
return sum(nums)/len(nums)
return averager
averager = make_averager()
print(averager(10))
print(averager(20))
print(averager(30))
print(averager(40))
执行结果为:
点击查看配套视频教程
获取更多内容请订阅python学习站官方技术圈!