函数-闭包函数

Posted 许儿

tags:

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

闭包函数:

 内部函数引用外部函数而非全局作用域的变量,该内层函数称为闭包函数

 闭包好处:若python检测到闭包,局部作用域不会随着函数的结束而关闭,会一直在内存中。

这才是闭包函数最常用的用法:爬虫,装饰器

def func():

    name = ‘eva‘

    def inner():

        print(name)

    return inner

f = func()

f()

判断闭包函数的方法__closure__

 

#输出的__closure__有cell元素 :是闭包函数

def func():

    name = ‘eva‘

    def inner():

        print(name)

    print(inner.__closure__)

    return inner

 

f = func()

f()

 

#输出的__closure__为None :不是闭包函数

name = ‘egon‘

def func2():

    def inner():

        print(name)

    print(inner.__closure__)

    return inner

 

f2 = func2()

f2()

闭包的嵌套
def wrapper():

    money = 1000

    def func():

        name = ‘eva‘

        def inner():

            print(name,money)

        return inner

    return func

 

f = wrapper()

i = f()

i()

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

Groovy闭包 Closure ( 闭包参数绑定 | curry 函数 | rcurry 函数 | ncurry 函数 | 代码示例 )

JS高级---闭包

闭包函数和装饰器

闭包函数

闭包函数,装饰器

JavaScript 闭包 立即执行函数