• 函数的嵌套和作用域链,闭包


     函数嵌套:  #指在第二个函数里面调用第一个函数的结果

    def func():

      print('sss')

    def func1(f):

      f()

    func1(func)

    作用域链:   #最内层的函数可以调用并且更改其他函数内的代码变量但是只限制于函数这个作用域内的变量  全局的变量不能被内部函数调用 否则会报错

            #除非声明global 全局变量  全局变量一般不会经常使用 因为会影响整个局面

            

    def func():

      a = 1

      def func1():

       nonlocal a

       a +=1

       print(a)

      func1()

    func()

    其中函数名字可以作为参数的实参,也可以赋值给其他变量,也可以作为容器名字也就是内存地址

    globals 无论放在函数外边还是里边它都是查找全局的内存地址

    locals  放在某个函数的里边查找的是这个函数内的所有变量  如果放在函数的最外边则与globals一样差的是全局内的所有变量

    闭包:

    def func():

        a = 1

      def func1():

        print(a)

      return func1

    aa  = func()

    aa()

    #  闭包必须嵌套函数 ,也必须是内部函数调用外部函数的变量

    #闭包的好处是避免一个函数执行结束后会释放前面的变量或者代码 不用重复定义某个变量,节省内存

  • 相关阅读:
    字符串(url)拼接变量
    elementUI table数据显示效果(二)
    异常(转)
    PHP 的异常处理、错误的抛出及错误回调函数 (转)
    详细解读PHP类的封装 (转)
    什么是抽象类
    什么是类,什么是对象,类和对象之间的关系
    魔术方法
    类的声名
    self
  • 原文地址:https://www.cnblogs.com/yuexijun/p/9750341.html
Copyright © 2020-2023  润新知