程序设计语言,基本上都会有命名空间这一说,所以到底什么是命名空间呢?
-
百科词条
先给一个百度百科的解释:命名空间
这里说,namespace(命名空间),也叫做“名称空间”和“名字空间”。顾名思义,是用来放名字的一个空间。 -
命名空间
在程序开发的过程中,我们肯定会新产出一系列的名字(变量名、函数名、类名等等),这个时候,几乎不能完全避免重名的情况,所以就要采用命名空间,把这些名字区分开来。
一个命名空间里的名字,可以和另外一个命名空间的名字完全相同,只要你在用的时候,是在自己的命名空间下,程序就不会因为名字相同而蒙圈,更不会去别人家的命名空间下找这个变量。
换句话说就是,变量只能在自己这个命名空间的域里面起作用,而不会干扰其他同名的有缘变量(ノv ̄、)。 -
Python的命名空间
python自己的命名空间,作用当然也一样。
例如,你有一个变量x,你把它放在一个函数里了,那么x就在该函数下面的命名空间(相当于一个局部命名空间)中起作用,你在函数外去引用他,就会出错;反过来,y是全局变量,你就可以在你的这个函数中使用它,因为你函数的这个局部命名空间也在全局的命名空间里——一个命名空间里可以嵌套声明命名空间。
而Python里最能体现命名空间与作用域的,是模块和包。
网友评论