• day14 闭包


    闭包的概念
      必须要有函数嵌套,内部函数调用外部函数的变量
    简单的例子
      此种方法会导致每次使用内部函数inner的时候需要不断的调用外部函数。
      结果导致外部函数的变量不断的被调用被释放,比较低效,相当于本来一个函数你现在用起来需要用到两个函数。
    1 def  outer():
    2     a = 1
    3     def inner():
    4         print(a)
    5     inner()
    6     print(inner.__closure__)  # 输出有cell 表示为闭包,为None不是闭包
    7 outer()        # (<cell at 0x0000000000150108: int object at 0x000007FEE62BD420>,)
    常用的闭包用返回值完成

      通过返回值拿到内部函数的地址,然后赋值直接运行即可直接运行内部函数
      从而让内部函数调用的变量可以长久保存,而不至于每次使用创建结束释放这样低效的行为
    1 def  outer():
    2     a = 1
    3     def inner():
    4         print(a)
    5     return inner
    6 inn = outer()
    7 inn()
    8 print(inn.__closure__)    # (<cell at 0x0000000000340108: int object at 0x000007FEE0DFD420>,)



  • 相关阅读:
    Android学习——day13
    寒假周总结三
    构建之法读书笔记03
    Android学习——day12
    每日日报2020 11/18
    每日日报2020 11/17
    每日日报2020 11/16
    每日日报2020 11/15
    每日日报2020 11/13
    每日日报2020 11/12
  • 原文地址:https://www.cnblogs.com/shijieli/p/9705653.html
Copyright © 2020-2023  润新知