python 命名空间 作用域,python 变量空间
在Python中,所有的名字都存在于一个空间中,它们在这个空间中存在并被操作。——这是名称空间。它就像一个盒子,每个变量名包含一个对象。当一个变量被查询时,相应的对象将在框中找到。
【定义】
名称到对象的映射。命名空间是一个字典的实现,键是变量名,值是变量对应的值。每个名称空间都是独立的并不重要。一个名称空间不能有重名,但是不同的名称空间可以重复,没有任何影响。
相关:《Python教程》
【分类】
在python程序执行期间将有2或3个活动名称空间(3个在函数调用期间,2个在函数调用之后)。根据变量定义的位置,可以分为以下三类:
Local,local namespace,每个函数拥有的命名空间,记录了函数中定义的所有变量,包括函数的参数和内部定义的局部变量。
全局命名空间Global是在加载和执行每个模块时创建的。它记录模块中定义的变量,包括模块中定义的函数和类、其他导入的模块、模块级变量和常量。
内置,python的内置命名空间,任何模块都可以访问,包含内置函数和异常。
【生命周期】
Local(本地命名空间)仅在调用函数时创建,但在函数返回结果或引发异常时删除。(每个递归函数都有自己的命名空间)。
Global(全局名称空间)是在加载模块时创建的,通常保持到python解释器退出。
内置(内置名称空间)是在python解释器启动时创建的,一直保持到解释器退出。
每个命名空间创建顺序:python解释器启动——创建内置命名空间——加载模块——创建全局命名空间——调用函数——创建局部命名空间。
命名空间销毁的顺序:函数调用结束——销毁函数对应的局部命名空间Python虚拟机(解释器)退出——销毁全局命名空间——销毁内置命名空间
python解释器会在加载阶段创建模块的内置命名空间和全局命名空间,在运行阶段调用函数时动态创建局部命名空间,在函数调用后动态销毁。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。