zoukankan      html  css  js  c++  java
  • 闭包

    作用域的关系,是在定义阶段确立的。

    在调用阶段,不管函数返回到那个位置,到函数最原始定义的时候去找名。

    闭包:内部函数包含对外部作用域,而不是全局作用域的名字的调用

    1,必须是内部定义的函数的代码,

    2,包含对外部作用域的引用,

    3,但不是对全局作用域的引用。

    x=1
    def = f1():
            x=2
            def f2()
                  print(x)
            return f2
    
    f=f1()
    f()
    

      

    闭包函数:一定是对外部作用域的引用

    x=1
    def f1():
         x=2
         y=1
         def f2():
              print(x)
              y
          return f2
    
    f=f1()
    f()
    print(f.__closure__[0].cell_contents)
    print(f.__closure__[1].cell_contents)

    返回这个函数f2,并且附加这个函数的作用域,也跟着出来
  • 相关阅读:
    day13
    day11作业
    day12
    小结2
    iOS-常见问题
    iOS-ASIHTTPRequest缓存机制
    iOS-文件断点续传
    iOS-Http : GET : POST
    iOS-通信录
    iOS-汉字排序
  • 原文地址:https://www.cnblogs.com/catherine007/p/8283999.html
Copyright © 2011-2022 走看看