码迷,mamicode.com
首页 > 其他好文 > 详细

函数的嵌套和作用域

时间:2017-12-28 00:04:33      阅读:137      评论:0      收藏:0      [点我收藏+]

标签:body   外部   函数调用   作用域链   nbsp   class   定义   outer   直接   

函数的嵌套定义

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

作用域链

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

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

函数的嵌套和作用域

标签:body   外部   函数调用   作用域链   nbsp   class   定义   outer   直接   

原文地址:https://www.cnblogs.com/Ebola-/p/8127939.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!