许儿

函数-闭包函数

闭包函数:

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

 闭包好处:若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()

posted on 2018-05-02 10:48  许儿  阅读(150)  评论(0编辑  收藏  举报

导航