11函数进阶---闭包

Posted vettel2018

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了11函数进阶---闭包相关的知识,希望对你有一定的参考价值。

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

 

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

以上是关于11函数进阶---闭包的主要内容,如果未能解决你的问题,请参考以下文章

DAY11 函数进阶(函数名的本质,闭包,迭代器)

Python进阶闭包(Closure)

Javascript进阶---闭包

Swift进阶六——函数和闭包

JavaScript 进阶第八章(闭包)

少女学习日记——函数进阶闭包以及递归