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命名空间是什么的全部内容了,如果对你有帮助的话可以点赞分享一下哦。