码迷,mamicode.com
首页 > 其他好文 > 详细

函数-闭包函数

时间:2018-05-02 13:17:13      阅读:160      评论:0      收藏:0      [点我收藏+]

标签:wrap   变量   cell   内部函数   ;内   nbsp   判断   爬虫   结束   

闭包函数:

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

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

函数-闭包函数

标签:wrap   变量   cell   内部函数   ;内   nbsp   判断   爬虫   结束   

原文地址:https://www.cnblogs.com/xyn123/p/8979185.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!