3-19函数——闭包

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

f=func()
print(f)
f()

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

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

posted @ 2019-08-02 16:46  echo少儿编程  阅读(94)  评论(0编辑  收藏  举报