定义:python
名称到对象的映射。命名空间是一个字典的实现,键为变量名,值是变量对应的值。各个命名空间是对立没有关系的,一个命名空间中不能有重名,可是不一样的命名空间能够重名且没有任何影响。函数
分类:ui
python程序执行期间会有2个或3个活动的命名空间(函数调用时有3个,函数调用结束后2个)。按照变量定义的位置,能够划分为如下3类:对象
Local:局部命名空间,每一个函数所拥有的命名空间,记录了函数中定义的全部变量,包含函数的入参、内部定义的局部变量。递归
Global:全局命名空间,每一个模块加载执行时建立的,记录了模块中定义的变量,包括模块中定义的函数、类、其余导入的模块、模块级的变量和常量。生命周期
Built-in:python自带的内建命名空间,任何模块都可以访问,放着内置的函数和异常。虚拟机
生命周期:变量
Local(局部命名空间):在函数被调用时才被建立,但函数返回结果或抛出异常时被删除。(每个递归函数都拥有本身的命名空间)。命名空间
Global(全局命名空间):在模块被加载时建立,一般一直保留知道python解释器退出。程序
Built-in(内建命名空间):在python解释器启动时建立,一直保留直到解释器退出。
各命名空间建立顺序:python解释器启动 -> 建立内建命名空间 -> 加载模块 -> 建立全局命名空间 -> 函数被调用 -> 建立局部命名空间
各命名空间销毁顺序:函数调用结束 -> 销毁函数对应的局部命名空间 -> python虚拟机(解释器)退出 -> 销毁全局命名空间 ->销毁内建命名空间