zoukankan      html  css  js  c++  java
  • python中的闭包概念

    # 闭包
    # 在函数中提出的概念
    # 闭包符合的几个条件:
    1. 外部函数中定义了内部函数
    2. 外部函数是有返回值的
    3. 返回值是:内部函数名
    4. 内部函数引用了外部函数的变量
    
    # 格式:
     def  外部函数():
          ...
          def 内部函数():
                ....
          return 内部函数名
    
    # 案例
    def func(a, b):
        c = 10
    
        def inner_func():
            s = a + b + c
            print('相加之后的结果是:', s)
    
        return inner_func
    
    
    # 调用func
    ifunc = func(6, 9)  # ifunc就是inner_func  ifunc = inner_func
    ifunc2  = func(2,8)
    
    # 调用返回来的内部函数
    ifunc2() ---->20  (保存返回闭包时的状态)
    ifunc()  ---->25  (保存返回闭包时的状态)
    
    # 闭包的应用
    1. 保存返回闭包时的状态(外层函数变量)
    
    
    # 总结
    闭包有什么缺点? 
    1. 作用域没有那么直观
    2. 因为变量不会被垃圾回收所以有一定的内存占用问题
    
    闭包的作用:
    1. 可以使用同级的作用域
    2. 读取其他元素的内部变量
    3. 延长作用域
    
    闭包总结:
    1. 闭包看似优化了变量,原来需要类对象完成的工作,闭包也可以完成
    2. 由于闭包引用了外部函数的局部变量,则外部函数的局部变量没有及时释放,消耗内存
    3. 闭包的好处,使代码变得简洁,便于阅读代码
    4. 闭包是理解装饰器的基础
    ------学习贵在分享,贵在记录,贵在总结。
  • 相关阅读:
    Html
    git和github简易教程
    Java基础
    如何学习一门语言
    leetcode题解(持续更新)
    浅谈安全威胁+引子
    内网渗透基础
    Java运算符
    Java修饰符
    Java变量类型
  • 原文地址:https://www.cnblogs.com/kevin1220/p/14358490.html
Copyright © 2011-2022 走看看