人生与戏

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

闭包: 将函数作为返回值返回的高价函数      注: 自己对闭包的理解 函数中的函数

作用:通过闭包创建只有当前函数能访问的变量        

闭包三要件:
  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))

 

posted on 2019-08-04 16:59  人生与戏  阅读(238)  评论(0编辑  收藏  举报