很多人在学习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命名空间是什么的全部内容了,如果对你有帮助的话可以点赞分享一下哦 。
推荐阅读
- Python作用域是什么?Python作用域有什么用
- Python中类的含义是什么?什么是Python的类
- Python异常处理的清理操作是什么?如何定义清理操作
- python如何将图像进行合并?python将图像进行合并的方法是什么?
- 如何使用python编写一个简单的爬虫程序?使用python编写简单的爬虫程序
- Python设置path环境变量有什么用?Python怎么设置path变量
- 如何快速一次性卸载所有python包呢?快速卸载python包的方法有哪些?
- Python怎么用循环实现选择排序?选择排序的实现方法如何编写?
- Python学数据分析哪本书比较好?Python数据分析看什么书
- pycharm怎么设置代码运行环境?Pycharm配置Python环境技巧