zoukankan      html  css  js  c++  java
  • 闭包

     闭包

    关于闭包,即函数定义和函数表达式位于另一个函数的函数体内(嵌套函数)。而且,这些内部函数可以访问它们所在的外部函数中声明的所有局部变量、参数。当其中一个这样的内部函数在包含它们的外部函数之外被调用时,就会形成闭包。也就是说,内部函数会在外部函数返回后被执行。而当这个内部函数执行时,它仍然必需访问其外部函数的局部变量、参数以及其他内部函数。这些局部变量、参数和函数声明(最初时)的值是外部函数返回时的值,但也会受到内部函数的影响。

    def func():
        n = 10
        def func2():
            print("func2:",n)
        return func2
    f = func()
    print(f)
    f()

    闭包的意义:返回的函数对象,不仅仅是一个函数对象,在该函数外还包裹了一层作用域,这使得,该函数无论在何处调用,优先使用自己外层包裹的作用域

    函数里面又套了一层子函。在外层函数执行时,子函数被返回,返回的是内存地址。在外面执行子函数时,它又引用了外层函数的变量,相当于子函数与外层函数有一种关系。这种关系就是闭包。

    外部拿到里面的函数
    效果:外部可以执行内部函数,并且可以用内部函数作用域里面的所有的值。


  • 相关阅读:
    烤盐屋——Beta冲刺日志(2/7)
    团队作业第六次--Beta阶段随笔集合
    OneDay!——冲刺日志集合
    Beta冲刺答辩
    OneDay!——随机组队“吐槽”
    OneDay!——Beta冲刺总结
    用户使用调查报告
    Beta冲刺日志--Day 7
    Beta冲刺日志--Day 6
    Beta冲刺日志--Day 5
  • 原文地址:https://www.cnblogs.com/fantsaymwq/p/9594279.html
Copyright © 2011-2022 走看看