函数的嵌套和作用域

本文详细介绍了Python中函数的嵌套定义、闭包的概念及其应用,以及nonlocal声明的作用。通过具体示例展示了如何利用闭包来保护变量,并讨论了作用域链的查找过程。

函数的嵌套定义

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

作用域链

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

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重复创造并使用,节省内存空间

转载于:https://www.cnblogs.com/Ebola-/p/8127939.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值