ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

唤醒手腕Python全栈工程师学习笔记(底层原理篇)

2022-01-08 16:00:09  阅读:191  来源: 互联网

标签:__ builtins Python builtin 全栈 原理篇 模块 内建


01、内建名称空间

在Python中,有一个内建模块,该模块中有一些常用函数,变量和类。

而该内建模块在Python启动后、且没有执行程序员所写的任何代码前,Python首先会自动加载该内建模块到内存。

另外,该内建模块中的功能可以直接使用,不用在其前添加内建模块前缀,其原因是对函数、变量、类等标识符的查找是按LEGB法 则,其中B即代表内建模块。

__builtin__builtins的区别

在Python2.X版本中,内建模块被命名为__builtin__,而到了Python3.X版本中,却更名为builtins,二者指的都是同一个东西,只是名字不同而已。

当使用内建模块中函数,变量和类等功能时,可以直接使用,不用添加内建模块的名字,也不用手动导入内建模块。但是,如果想要向内建模块修改或者添加一些功能,以便在程序其他地方使用时, 这时需要手动import。

builtins就是内建模块的一个引用

虽然是一个引用,但builtins和内建模块是有一点区别的:

要想使用内建模块,都必须手动import内建模块,而对于builtins却不用导入,它在任何模块都直接可见, 有些情况下可以把它当作内建模块直接使用。

builtins虽是对内建模块的引用,但这个引用要看是使用builtins的模块是哪个模块:

在主模块main中:

builtins是对内建模块builtin本身的引用,即builtins完全等价于builtin,二者完全是一个东西,不分彼此。

在非main模块中:

builtins仅是对builtin.dict的引用,而非builtin本身。它在任何地方都可见。此时builtins的类型是字典。

标签:__,builtins,Python,builtin,全栈,原理篇,模块,内建
来源: https://blog.csdn.net/qq_47452807/article/details/122381426

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有