美文网首页Python
Python的基础知识之闭包

Python的基础知识之闭包

作者: 摸着石头过河_崖边树 | 来源:发表于2020-03-07 17:43 被阅读0次

一、什么是闭包

闭包:在函数嵌套的条件下,内层函数引用外包变量, 内层函数使用外部函数的返回值

tmpdir__17_9_6_10_48_05.jpg

闭包的格式:

def outerFunc(a):
    def innerFunc(b):
        print(a + b)
return innerFunc
newFunc = outerFunc(10)  //返回函数
newFunc(2) //调用函数

二、闭包使用场景

外层函数根据不同参数,生成不同功能的函数

 def line_config(content, length):
     def line(str):
          print(str * (length // 2) + content + str * (length // 2))
 return line
createLine = line_config('abc', 40)
createLine("+")
createLine("-")
createLine("=")
结果:
  ++++++++++++++++++++abc++++++++++++++++++++
  --------------------abc--------------------
  ====================abc====================

三、闭包使用的注意事项

  1. 修改外部变量 nonlocal 申明非局部的num

    def outerFunc():
         num = 10
       def innerFunc():
            nonlocal num
            num = 23
            print('内层的---', num)
     innerFunc()
     print('外层的---', num)
     return innerFunc
     newFunc = outerFunc()
     newFunc()
     结果:
       内层的--- 23
       外层的--- 23
       内层的--- 23
    

2.函数的内部变量参数对应的值是在函数调用时候确定

def outterFunc():
    funs = []
    for i in range(1, 4):
        def innerFunc():
            print(i)
    funs.append(innerFunc)
return funs
newFuncs = outterFunc()
newFuncs[0]()
newFuncs[1]()
newFuncs[2]()
'''
结果
3
3
3
'''

如果需要了解更多Python知识,请查看
Python的基础知识之生成器
Python的基础知识之装饰器
Python的基础知识之迭代器

最后赠言

学无止境,学习Python的伙伴可以多多交流

相关文章

  • python函数之闭包

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

  • Gradle开发-Groovy闭包

    # 闭包 闭包的基础知识 闭包的使用 闭包 this,owner,delegate 的理解 总结 ## 闭包的基础...

  • python闭包学习

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

  • python高级之闭包

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

  • Python的基础知识之闭包

    一、什么是闭包 闭包:在函数嵌套的条件下,内层函数引用外包变量, 内层函数使用外部函数的返回值 闭包的格式: 二、...

  • Python 入门之 闭包

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

  • Python 闭包使用注意点

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

  • python之闭包

    闭包的概念 在一些语言中,在函数中可以(嵌套)定义另一个函数时,如果内部的函数引用了外部的函数的变量,则可能产生闭...

  • Python之——闭包

    一直觉得这个概念糊涂,其实,只是名字让人觉得糊涂,实际上理解了也挺容易的。 内部函数对外部函数作用域里变量的引用(...

  • Python之闭包

    很多高级语言都支持闭包,面试的时候也可能会问到,这可以作为对Python水平的一个参考。先看看百科的解释: 在计算...

网友评论

    本文标题:Python的基础知识之闭包

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