美文网首页
Python闭包

Python闭包

作者: 黄褐色猫头鹰 | 来源:发表于2018-11-07 14:27 被阅读0次
#Python闭包(closure)
#闭包的理解: 闭包能够将一个方法作为一个变量去传递
#   可以让局部变量的值始终保持在内存中
#   python中的闭包通过函数嵌套, 返回函数对象来实现(和js类似)
#   缺点: 过度使用闭包会导致性能下降
#   优点: 代码展示更优雅, 更符合逻辑, 

def counter(a=0):
    count = [a] #这里不能使用int, 否则无法自增
    def add_one():
        count[0] += 1
        return count[0]
    return add_one

c1 = counter(5) #返回的c1是函数对象, 调用的时候需要带上括号
print(c1()) #6
print(c1()) #7
#这里的counter函数之所以不用全局变量, 是因为在复杂程序中, 全局变量会有很多麻烦
#命名冲突, 垃圾回收

# a * x + b = y 计算y
def a_line(a, b):
    def arg_y(x):   #这里可以使用lambda来改写 return lambda x: a*x + b
        return a * x + b
    return arg_y

line1 = a_line(3, 5)
print(line1(10))
line2 = a_line(4, 7)
print(line2(10))
#这里的python闭包函数和java匿名内部类相比, 优势是可以在定义函数时, 可以传递可变参数

相关文章

  • python闭包学习

    参考文章 python闭包python闭包一步一步教你认识Python闭包深入浅出python闭包

  • python函数之闭包

    目录 python函数之闭包什么是闭包python中的namespace闭包的条件闭包的优点 python函数之闭...

  • Python 闭包使用注意点

    1 Python 闭包 今天,聊下 python 的闭包。在函数编程中经常用到闭包。 闭包是什么,它是怎么产生的及...

  • python高级之闭包

    python高级之闭包 什么是闭包? 闭包(closure)是函数式编程的重要的语法结构。闭包也是一种组织代码的结...

  • Python 中的闭包

    Python 中的闭包:+ http://python.jobbole.com/82296/

  • python之理解闭包和装饰器

    python之理解闭包和装饰器 1、闭包函数 1.1 python中函数都是对象 结果: 上面定义一个shut函数...

  • 闭包

    浅谈 python 的闭包思想 首先 python的闭包使用方法是:在方法A内添加方法B,然后return 方法B...

  • 2018-11-20

    python函数的闭包 闭包: 嵌套函数调用外部函数的变量 注意: 闭包必须是内部函数调用外部函数定义的变量,这其...

  • Python 入门之 闭包

    Python 入门之 闭包 1、闭包 (1)在嵌套函数内使用(非本层变量)和非全局变量就是闭包 (2)_ clos...

  • Python装饰器(Decorator)完全指南-基础篇

    Decorator基本指南 前提知识 Python中的闭包(closure) 所谓闭包,指的是附带数据的函数对象。...

网友评论

      本文标题:Python闭包

      本文链接:https://www.haomeiwen.com/subject/zghvxqtx.html