命名空间
Posted jt925
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了命名空间相关的知识,希望对你有一定的参考价值。
又名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,内置模块的名字空间
以上是关于命名空间的主要内容,如果未能解决你的问题,请参考以下文章
命名空间“System.Configuration”中不存在类型或命名空间名称“ConfigurationManager”