命名空间
概念
命名空间(namespace)是名称到对象的映射,当前大部分命名空间都是通过 Python 字典来实现的,它的主要作用是避免项目中的名字冲突,每一个命名空间都是相对独立的,在不同的命名空间中可以同名,在相同的命名空间中不可以同名。
种类
命名空间主要有以下三种:
- 内置:主要用来存放内置函数、异常等,比如:abs 函数、BaseException 异常。
- 全局:指在模块中定义的名称,比如:类、函数等。
- 局部:指在函数中定义的名称,比如:函数的参数、在函数中定义的变量等。
生命周期
通常在不同时刻创建的命名空间拥有不同的生命周期,看一下三种命名空间的生命周期:
内置:在 Python 解释器启动时创建,退出时销毁。
全局:在模块定义被读入时创建,在 Python 解释器退出时销毁。
局部:对于类,在 Python 解释器读到类定义时创建,类定义结束后销毁;对于函数,在函数被调用时创建,函数执行完成或出现未捕获的异常时销毁。