什么是命名空间

 我来答
帐号已注销
2019-05-28 · TA获得超过82.9万个赞
知道大有可为答主
回答量:2602
采纳率:100%
帮助的人:175万
展开全部

namespace即“命名空间”,也称“名称空间” 、”名字空间”。VS.NET中的各种语言使用的一种代码组织的形式 通过名称空间来分类,区别不同的代码功能 同时也是VS.NET中所有类的完全名称的一部分。

通常来说,命名空间是唯一识别的一套名字,这样当对象来自不同的地方但是名字相同的时候就不会含糊不清了。使用扩展标记语言的时候,XML的命名空间是所有元素类别和属性的集合。元素类别和属性的名字是可以通过唯一XML命名空间来唯一。

在XML里,任何元素类别或者属性因此分为两部分名字,一个是命名空间里的名字另一个是它的本地名。在XML里,命名空间通常是一个统一资源识别符(URI)的名字。而URI只当名字用。主要目的是为了避免名字的冲突。

扩展资料:

由于namespace的概念,使用C++标准程序库的任何标识符时,可以有三种选择:

1、直接指定标识符。例如std::ostream而不是ostream。完整语句如下: std::cout << std::hex << 3.4 << std::endl;

2、使用using关键字。 using std::cout; using std::endl; using std::cin; 以上程序可以写成 cout << std::hex << 3.4 << endl;

3、最方便的就是使用using namespace std; 例如: using namespace std;这样命名空间std内定义的所有标识符都有效(曝光)。就好像它们被声明为全局变量一样。

参考资料来源:百度百科-namespace

光芒无处不在
高粉答主

2019-02-17 · 每个回答都超有意思的
知道小有建树答主
回答量:899
采纳率:97%
帮助的人:30.4万
展开全部

命名空间一般指namespace,是VS.NET中的各种语言使用的一种代码组织的形式 通过名称空间来分类,区别不同的代码功能 同时也是VS.NET中所有类的完全名称的一部分。

命名空间是用来组织和重用代码的。如同名字一样的意思,NameSpace(名字空间),之所以出来这样一个东西,是因为人类可用的单词数太少,并且不同的人写的程序不可能所有的变量都没有重名现象。

扩展资料

通常来说,命名空间是唯一识别的一套名字,这样当对象来自不同的地方但是名字相同的时候就不会含糊不清了。使用扩展标记语言的时候,XML的命名空间是所有元素类别和属性的集合。元素类别和属性的名字是可以通过唯一XML命名空间来唯一。

在XML里,任何元素类别或者属性因此分为两部分名字,一个是命名空间里的名字另一个是它的本地名。在XML里,命名空间通常是一个统一资源识别符(URI)的名字。而URI只当名字用。主要目的是为了避免名字的冲突。

参考资料来源:百度百科-namespace

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
fly凉城孤影
推荐于2019-08-12 · TA获得超过1.1万个赞
知道小有建树答主
回答量:115
采纳率:100%
帮助的人:1.7万
展开全部

namespace即“命名空间”,也称“名称空间” 、”名字空间”。VS.NET中的各种语言使用的一种代码组织的形式 通过名称空间来分类,区别不同的代码功能 同时也是VS.NET中所有类的完全名称的一部分。

命名空间是用来组织和重用代码的。如同名字一样的意思,NameSpace(名字空间),之所以出来这样一个东西,是因为人类可用的单词数太少,并且不同的人写的程序不可能所有的变量都没有重名现象。

对于库来说,这个问题尤其严重,如果两个人写的库文件中出现同名的变量或函数(不可避免),使用起来就有问题了。为了解决这个问题,引入了名字空间这个概念,通过使用 namespace xxx;你所使用的库函数或变量就是在该名字空间中定义的,这样一来就不会引起不必要的冲突了。

通常来说,命名空间是唯一识别的一套名字,这样当对象来自不同的地方但是名字相同的时候就不会含糊不清了。使用扩展标记语言的时候,XML的命名空间是所有元素类别和属性的集合。元素类别和属性的名字是可以通过唯一XML命名空间来唯一。

扩展资料:

命名空间使用

命名空间中的类名可以通过三种方式引用:

1、非限定名称,或不包含前缀的类名称

例如 $a=new foo(); 或 foo::staticmethod();。如果当前命名空间是 currentnamespace,foo 将被解析为 currentnamespace\foo。

如果使用 foo 的代码是全局的,不包含在任何命名空间中的代码,则 foo 会被解析为foo。 警告:如果命名空间中的函数或常量未定义,则该非限定的函数名称或常量名称会被解析为全局函数名称或常量名称。

2、限定名称,或包含前缀的名称

例如 $a = new subnamespace\foo(); 或subnamespace\foo::staticmethod();。如果当前的命名空间是 currentnamespace,则 foo 会被解析为 currentnamespace\subnamespace\foo。

如果使用 foo 的代码是全局的,不包含在任何命名空间中的代码,foo 会被解析为subnamespace\foo。

3、完全限定名称,或包含了全局前缀操作符的名称

例如, $a = new \currentnamespace\foo(); 或 \currentnamespace\foo::staticmethod();。在这种情况下,foo 总是被解析为代码中的文字名(literal name)currentnamespace\foo。

参考资料来源:百度百科-namespace

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
泰汇园林
高粉答主

推荐于2019-08-30 · 醉心答题,欢迎关注
知道答主
回答量:44
采纳率:83%
帮助的人:1.2万
展开全部

命名空间即namespace,也称名称空间、名字空间。命名空间是用来组织和重用代码的,区别不同的代码功能。用来储存变量名和对象绑定关系的一个区域,在 Python 中用字典来储存。通常来说,命名空间是唯一识别的一套名字。

可以认为namespaces是你kubernetes集群中的虚拟化集群,在一个Kubernetes集群中可以拥有多个命名空间,它们在逻辑上彼此隔离。对一个对象的读写操作,实际上就是在改变这个对象所处的命名空间的值,当然这是对命名空间而言,对象的读写底层还是内存操作。

扩展资料

命名空间有两个作用,其一是取值,其二为赋值。

取值的时候,Python 解释器会从当前的命名空间开始搜索,也就是 locals 命名空间,如果找不到就搜索其他的命名空间。当查到到了以后,就停止搜索,并把变量加入到当前的命名空间,如果最终没有搜索到,那么就会抛出 NameError异常。

变量的赋值,会是修改当前所处命名空间中对应的键值对,如果当前命名空间中没有这个键值对,那么就会重新新建一个键值对,如果外层的命名空间存在这个键值对,还是会在当前命名空间新键一个键值对,而且两个命名空间互不影响。

参考资料来源;百度百科--namespace



本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
推荐于2017-09-07
展开全部
命名空间是为了把一些类和类的实例更好地管理而定义的把这些类和实体集合起来的一个团体,它是_Namespace system class的一个实例,或者是_Namespace类的一个派生类,_Namespace类只有一个属性:Name。通过这个属性用户可以把某个命名空间和其他的命名空间分开来,注意命名空间的Name不能包括头缀和后缀的下划线。
命名空间可以相互联系和组织成一个具有任意层次的由类和类的实例组成的网状结构,这种结构有点象文件系统的树状结构,在同一个层次的情况下,命名空间必须具有互异的名称。
为了表示它们的层次结构你可以用右下线表示这种关系,如下:
Namespace1\Namespace2\Namespace3.....\LastNamespace
虽然说这些命名空间可以表示成这样的层次结构,但是,这些命名空间之间没有类的继承关系,也就是说,子的命名空间中的类不会自动继承父的命名空间中的类。
通常情况下,一个命名空间包含了在某种环境下一系列的类和类的实例。例如那些在Win32下定义和运行的类即使是和其他的命名空间里的类具有相同的名字也不会出现冲突,然而在建立一个新的类的时候,最好还是不要和已经建立的类的名字相同,这为将来WMI发布减少了一些问题。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式