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()

  • 相关阅读:
    快速幂和矩阵快速幂-模板
    gcd-模板+最小公倍数
    manacher-模板-hd-3068
    kmp-模板-hd-1711
    链式前向星-邻接表--模板
    poj-3096-Suprising Strings
    hihocoder-1615-矩阵游戏II
    hihocoder-Week174-Dice Possibility
    论文-Swish: A self-gated Active Function
    hihocoder-1595-Numbers
  • 原文地址:https://www.cnblogs.com/xyn123/p/8979185.html
Copyright © 2011-2022 走看看