唤醒手腕Python全栈工程师学习笔记(底层原理篇)
作者:互联网
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