zoukankan      html  css  js  c++  java
  • 函数-闭包函数

    闭包函数:

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

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

  • 相关阅读:
    P4374 [USACO18OPEN]Disruption P
    POJ
    Git
    SpringBoot集成RabbitMQ
    GIS类型文件剖析
    SpringBoot全局异常处理
    SpringCloud Feign异常处理
    SpringBoot注解
    Restful风格接口定义
    LOD技术的理解
  • 原文地址:https://www.cnblogs.com/xyn123/p/8979185.html
Copyright © 2011-2022 走看看