zoukankan      html  css  js  c++  java
  • 闭包

    条件
    1.一个嵌套函数
    2.在嵌套函数的内部函数使用外部(非全局的变量)
    查看是否是闭包函数名.closure()

    # def wrapper():
    #     a = 10
    #     def inner():
    #        print(a)
    #     # print(inner.__closure__) # 不是None 就是闭包
    #     inner()
    # wrapper()
    # def wrapper():
    #     a = 10
    #     def inner():
    #        print(a)
    #     return inner
    # inner = wrapper()
    # inner()
    
    
    # def wrapper():
    #     a = 10
    #     def inner():
    #        print(a)
    #     return inner
    # wrapper()()
    
    

    闭包的意义:返回的函数对象,不仅仅是一个函数对象,在该函数外还包裹了一层作用域,

    这使得,该函数无论在何处调用,优先使用自己外层包裹的作用域

    应用领域:延迟计算(原来我们是传参,现在我们是包起来)

    python中闭包会进行内存驻留,普通函数执行完后就销毁了
    全局存放会有污染和不安全等我现象
    闭包有个弊端:会出现内存泄漏.......查资料补全
    装饰器的本质就是闭包

  • 相关阅读:
    单向链表的创建、输出、插入、删除
    linux文件管理指令
    二叉树的创建与遍历(递归)
    小工具
    排序
    Project Euler Problem (1~10)
    福大软工 · 最终作业
    福大软工 · 第十二次作业
    Beta冲刺 7
    Beta冲刺 6
  • 原文地址:https://www.cnblogs.com/bigcatbc/p/10538540.html
Copyright © 2011-2022 走看看