【Python总结】闭包及其应用

闭包及其应用

1、闭包的概念

闭包的概念比较晦涩难以理解,我是这么定义闭包的:

闭包 是这样的函数,它嵌套在另一个函数中,并且由其所嵌套的函数返回该函数的引用。

下面通过一个具体的例子来理解闭包的概念

def line(a,b):
    def line_inner(x):
        return a*x+b
    print(line_inner)
    return line_inner

在这个例子中,函数line_inner(x)嵌套在函数line(a,b)中,并且,函数line(a,b)的返回值是函数line_inner的引用,这样的函数line_inner就是一个 闭包

闭包满足以下三个条件:

  1. 嵌套在函数里面
  2. 闭包中的变量含有外部函数的参数
  3. 外部函数的返回值是内部函数的引用

下面通过一行代码来看看返回的函数引用到底是神马

print(line(1,2))

输出结果是:

<function line.<locals>.line_inner at 0x000001F27AC82620>

可以看出,外部函数line返回的是内部函数line_inner的引用(内部的引用地址)

2、闭包的使用

那么,闭包怎么使用呢?

通过上面的例子,外部函数返回了内部函数的引用

要想使用闭包,就要利用返回的函数引用

把这个引用保留下来,就可以当做内部函数来使用了

line0 = print(line(1,2))
line0(3)

这样,就可以使用闭包了

3、闭包的应用

看起来闭包比一般的函数还要复杂,难以理解

那么,还为什么要学习闭包呢?

因为,闭包在数据处理方面高效便捷性就体现出来了

下面举个例子:

如果想计算:y = a * x + b 的值

利用一般函数计算要传递三个参数

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值