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

LEGB

时间:2019-03-26 01:26:03      阅读:182      评论:0      收藏:0      [点我收藏+]

标签:顺序   fine   改变   内部函数   tle   undefined   space   直接   依次   

找寻变量的调用顺序采用LEGB原则(即就近原则)  

  1. B —— Builtin(Python);Python内置模块的命名空间      (内建作用域) (内置命名空间)
  2. G —— Global(module); 函数外部所在的命名空间        (全局作用域) (全局命名空间)
  3. E —— Enclosing function locals;外部嵌套函数的作用域(嵌套作用域) (局部命名空间)
  4. L —— Local(function);当前函数内的作用域            (局部作用域) (局部命名空间)

 

 

依据就近原则,从下往上 从里向外 依次寻找

局部变量:
    函数内部的变量(局部命名空间)

全局变量:
    函数内部和外部(全局命名空间)

 

 

(1)内部函数可以直接在函数外部调用么?   不行!
(2)调用外部函数后,内部函数可以在函数外部调用吗  不行!
(3)内部函数可以在函数内部调用吗   可以
(4)内部函数在函数内部调用时,是否有先后顺序 有先后顺序




获取变量时遵循LEGB原则,
修改变量时需要global/nonlocal进行修改

 

LEGB

标签:顺序   fine   改变   内部函数   tle   undefined   space   直接   依次   

原文地址:https://www.cnblogs.com/caihuajiaoshou/p/10597523.html

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