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


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

    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()

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

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

  • 相关阅读:
    JSON.parse()和JSON.stringify()
    php结合layui实现前台加后台操作
    微信拨打电话功能
    视觉差效果
    前端开发面试题
    字符串分割--java中String.split()用法
    vue.js实现购物车功能
    localStorage使用总结
    canvas 实现赛车小游戏
    canvas 实现飞碟射击游戏
  • 原文地址:https://www.cnblogs.com/yuexijun/p/9750341.html
Copyright © 2020-2023  润新知