更多python、Linux、网络安全学习内容,可移步:www.oldboyedu.com或关注\"老男孩Linux\"公众号
分类: Python/Ruby
2022-01-05 11:59:50
命名空间是一个命名系统,用于确保名称是唯一性,以避免命名冲突;而且在Python中,每个包、模块、类、函数和方法函数都拥有一个命名空间,在该命名空间中解析变量名。那么Python中命名空间是什么?相信很多人对此都不是很了解,小编特整理了这篇文章,希望能够帮助到你们。
Python中命名空间是什么?
命名空间是从名称到对象的映射,大部分的命名空间都是通过Python字典来实现的。
命名空间提供了在项目中避免名字冲突的一种方法,各个命名空间是独立的,没有任何关系的,所以一个命名空间中不能有重名,但不同的命名空间是可以重名而没有任何影响。
Python命名空间分类
Python程序执行期间会有两个或者三个活动的命名空间,按照变量定义的位置,可以划分为以下3类:
内置名称:built-in names,Python语言内置的名称,比如函数abs、char和异常名称BaseException、Exception等。
全局名称:global names,模块中定义的名称,记录了模块的变量,包括函数、类、其它导入的模块、模块级的变量和常量。
局部名称:local names,函数中定义的名称,记录了函数的变量,包括函数的参数和局部定义的变量。
Python命名空间生命周期
local names,在函数被调用时才被创建,但函数返回结果或抛出异常时被删除。
global names,在模块被加载时创建,通常一直保留,直到Python解释器退出。
built-in names,在Python解释器启动时创建,一直保留到解释器退出。
各个命名空间创建顺序:Python解释器启动—创建内建命名空间-加载模块-创建全局命名空间-函数被调用-创建局部命名空间。
各个命名空间销毁顺序:函数调用结束-销毁函数对应的局部命名空间-Python解释器退出-销毁全局命名空间-销毁内建命名空间。