命名空间 命名空间英語Namespace也称命名空间名称空间等它表示着一个标识符identifier的可见范围一个标识符可在多个命名空间中定义它在不同命名空间中的含义是互不相干的这样在一个新的命名空间中可定义任何标识符它们不会与任何已有的标识符发生冲突因为已有的定义都处于其他命名空间中 例如设Bill是X公司的员工工号为而John是Y公司的员工工号也是由于两人在不同的公司工作可以使用相同的工号来标识而不会造成混乱这里每个公司就表示一个独立的命名空间如果两人在同一家公司工作工号也相同便会发生混乱 这一特点是使用命名空间的主要理由在大型的计算机程序或文档中往往会出现数百或数千个标识符命名空间提供一隱藏區域標識符的機制通过将逻辑上相关的标识符组织成相应的命名空间可使整个系统更加模块化 在编程语言中命名空间是对作用域的一种特殊的抽象它包含了处于该作用域内的标识符且本身也用一个标识符来表示这样便将一系列在逻辑上相关的标识符用一个标识符组织了起来许多现代编程语言都支持命名空间在一些编程语言例如C和Python中命名空间本身的标识符也属于一个外层的命名空间也即命名空间可以嵌套构成一个命名空间树树根则是无名的全局命名空间 函数和类的作用域可被視作隱式命名空间它們和可見性可訪問性和对象生命周期不可分割的联系在一起