Python命名空间是什么?Python命名空间有什么用

很多人在学习python的时候都会对命名空间这个词语感到困惑,那它是什么意思呢 。本文会详细讲解python命名空间的内容,一起看看吧 。

Python命名空间是什么?Python命名空间有什么用

文章插图
namespace(命名空间)是映射到对象的名称 。现在,大多数命名空间都使用Python字典实现,但除非涉及到优化性能 。命名空间的几个常见示例有abs()函数、内置异常等的内置函数集合、模块中的全局名称、函数调用中的局部名称等,对象的属性集合也算是一种命名空间 。
关于命名空间的一个重要知识点是,不同命名空间中的名称之间绝对没有关系 。例如,两个不同的模块都可以定义maximize函数,且不会造成混淆,用户使用函数时必须要在函数名前面附加上模块名 。
点号之后的名称是属性 。例如,表达式z.real中,real是对象z的属性 。严格来说,对模块中名称的引用是属性引用 。表达式modname.funcname中,modname是模块对象,funcname是模块的属性 。模块属性和模块中定义的全局名称之间存在直接的映射,它们共享相同的命名空间 。
属性可以是只读或者可写的,如果可写,则可对属性赋值 。模块属性是可写时,可以使用modname.the_answer=42 。del语句可以删除可写属性,例如,delmodname.the_answer会删除modname对象中的the_answer属性 。
命名空间是在不同时刻创建的,且拥有不同的生命周期 。内置名称的命名空间是在Python解释器启动时创建的,永远不会被删除 。模块的全局命名空间在读取模块定义时创建,通常模块的命名空间也会持续到解释器退出 。从脚本文件读取或交互式读取的,由解释器顶层调用执行的语句是__main__模块调用的一部分,也拥有自己的全局命名空间 。内置名称实际上也在模块里,即builtins 。
函数的本地命名空间在调用该函数时创建,并在函数返回或抛出不在函数内部处理的错误时被删除 。当然,每次递归调用都会有自己的本地命名空间 。
【Python命名空间是什么?Python命名空间有什么用】以上就是关于python命名空间是什么的全部内容了,如果对你有帮助的话可以点赞分享一下哦 。

    推荐阅读