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

命名空间

时间:2018-12-31 15:43:51      阅读:141      评论:0      收藏:0      [点我收藏+]

标签:cal   name   形参   dir   内存   定义   查看   函数定义   模块   

又名name space,顾名思义就是存放名字的地方,存什么名字呢?举例说明,若变量x=1,1存放于内存中,

是存放名字x与1绑定关系的地方

命名空间共3种,分别如下

locals:是函数内的命名空间,包括局部变量和形参(若在函数外面使用则等同于globals)

globals:全局变量,函数定义所在的模块的名称空间

builtins:内置模块的名字空间(打印(dir(__builtins__)))

不同变量的作用域不同就是由这个变量所在的命名空间决定的。

 

作用域即范围

全局范围:全局存活,全局有效

局部范围:临时存活,局部有效

查看作用域的方法globals(),locals()

 

作用域查找顺序

LEGB:代表名字查找顺序,locals=》enclosing funstion=》globals=》__builtins__,层层往上找,因此上层空间无法找到下层空间的数据

L:locals,是函数内的名字空间,包括局部变量和形参

E:enclosing,外部嵌套函数的名字空间

G:globls,全局变量,函数定义所在的模块的名字空间

B:builtins,内置模块的名字空间

 

命名空间

标签:cal   name   形参   dir   内存   定义   查看   函数定义   模块   

原文地址:https://www.cnblogs.com/jt925/p/10201997.html

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