美文网首页
python函数之闭包

python函数之闭包

作者: 讲武德的年轻人 | 来源:发表于2023-02-02 14:41 被阅读0次

个人认为,这是一个较好的闭包的例子,典型的可以表明闭包的数据存储功能。首先,这是一个嵌套函数,外层函数counter在其作用域内定义了一个变量base,并且外层函数的返回值是内层函数,这里注意,内层函数用了nonlocal来声明base:在自己的内层函数作用域内,使用外层函数的base变量,而不是又在自己的内部作用域定义自己的base,如此以来,base这个变量在程序运行时,就可以保存在内存中了。

在编写代码中需要附加额外的状态给函数时,一定要考虑使用闭包。

def counter():
    base = 0
    def inc(step=1):
        nonlocal base
        base += step
        print(base)
        return base
    return inc

f1 = counter()
f1()
f1()
f1()
f1()
f1()
f1()
f1()

运行结果:

"C:\Program Files\Python37\python.exe" D:/python_pycharm1/1.高阶函数.py
1
2
3
4
5
6
7

Process finished with exit code 0

个人理解,难免有偏差,欢迎评论交流!

相关文章

  • python函数之闭包

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

  • python高级之闭包

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

  • 2018-11-20

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

  • Python 入门之 闭包

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

  • python之理解闭包和装饰器

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

  • Python 闭包使用注意点

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

  • python装饰器

    一、python装饰器本质 一言以蔽之:函数闭包的语法糖 增强一个函数的三种方式: 1,普通增强 2,用闭包函数增...

  • Python闭包与ObjC的block的区别与联系

    首先明确一下Python闭包和ObjC中block的定义在python中闭包是这么定义的——内层函数引用了外层函数...

  • Python中的闭包

    php对闭包的定义是匿名函数,我之前对python闭包的理解是:外部函数以内部函数作为返回值,称之为闭包!!!(错...

  • Python 闭包与装饰器图解

    python万物皆对象! 闭包 闭包:两个函数的嵌套,外部函数返回内部函数的引用,外部函数一定有参数 def 外部...

网友评论

      本文标题:python函数之闭包

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