python之闭包(Closure) 详细注解

闭包函数:

def sum_late(*args):

    def cals_sum():
        ax = 0
        for i in args:
            ax = ax + i
        return ax                                 # 这里返回了一个阶层相加的结果

    return cals_sum                        # 这里返回内部函数

print(sum_late(1, 2, 3, 4))          # 给外部函数传入一个元组,返回一个内部函数(注意这里返回的是一

                                                            个函数不是一个值)

cals_sum = sum_late(1, 2, 3, 4)  # 把外部函数的值赋值给内部函数,执行这个函数,最后返回一个相

                                                                加的结果

print(cals_sum())                              # 这里输出一个循环累加的结果

执行的结果为:

>>>  <function sum_late.<locals>.cals_sum at 0x7f087f671730>

>>> 10

函数称之为闭包,因为在函数sum_late中又定义了函数cals_sum,并且内部函数cals_sum可以引用外

部函数sum_late的参数和局部变量.当sum_late返回函数cals_sum时,相关参数和变量都保存在返回

的函数中,所以称为闭包.

 

 

 

转载于:https://my.oschina.net/u/3846740/blog/1810135

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值