函数的嵌套和作用域

Posted 埃博拉

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了函数的嵌套和作用域相关的知识,希望对你有一定的参考价值。

函数的嵌套定义

①内部函数可以使用外部函数的变量

作用域链

在内部函数使用变量时,是从小局部到大局部到全局到内置名字的过程中一级一级网上找,找到最近的一个就使用

nonlocal a 声明一个上层局部变量,往上走一级离得最近并且有a

1、对全局无效

2、对局部的最近的一层产生影响

闭包嵌套函数,内部函数调用外部函数的变量

不调用不是闭包是嵌套

def outer()

  a = 1

  def inner():

    print(a)

outer()

闭包的应用

可以保护变量,保护上一级局部变量中a = 1 生存周期

def outer()

  a= 1

  def inner()

    return innner

  print(a)

inn = outer()    #用imn接收return inner

inn()    #直接调用函数,省去a重复创造并使用,节省内存空间

以上是关于函数的嵌套和作用域的主要内容,如果未能解决你的问题,请参考以下文章

函数的嵌套和作用域

可变长参数函数对象嵌套名称空间和作用域

作用域和作用域链

python——函数嵌套和作用域

013.Python之函数嵌套名称空间与作用域闭包函数

python全栈闯关--10-2函数的嵌套和作用域