闭包: 将函数作为返回值返回的高价函数 注: 自己对闭包的理解 函数中的函数
作用:通过闭包创建只有当前函数能访问的变量
闭包三要件:
1、函数嵌套
2、返回值为内部函数
3、内部函数必须使用相对于内部函数的外部函数的变量
效果图:
代码:
def fn(): a = 10 # 定义一个内部函数 def inner(): print('这是内部函数:',a) # 将内部函数 inner作为返回值返回 return inner # r是一个函数,是调用fn()后返回的函数 # 这个函数实在fn()内部定义,并不是全局函数 # 所以这个函数总是能访问到fn()函数内的变量 r = fn() # 调用返回的函数 r() print('\n\n\n') def make_averager(): # 创建一个列表,用来保存数值 nums = [] # 创建一个函数,用来计算平均值 def averager(n): # 将 n 添加到列表中 nums.append(n) # 求平均值 return sum(nums)/len(nums) return averager a = make_averager() print(a(2)) print(a(5)) print(a(8))