builtins模块详解
1.简介
builtins是python的内建模块,所谓内建模块就是你在使用时不需要import
,在python启
动后,在没有执行程序员编写的任何代码前,python会加载内建模块中的函数到内存中。比如经常
使用的abs()
,str()
,type()
等。在python2.x中这个模块叫做__builtin__
.如果你需要向内建模块中添加自己的函数,则必须import builtins
(在__main__模块中可以直接通过__builtins__添加函数,不需要import builtins
)。
2.builtins与__builtins__的区别
__builtins__
是对builtins
的一个引用。在任何地方使用builtins
都必须import,
而使用__builtins__
则不需要import。那这个引用指的是什么呢?下面分两种情况来解释:
-
在__main__模块中
在__main__中__builtins__
与builtins
是同一个东西,你可以通过这两个中的任意一个来
导入自己的函数。两者唯一的区别是__builtins__
使用时不需要导入,而无论在那个模块中使
用builtins
都必须先导入。
file:///D:/%E7%AC%94%E8%AE%B0/builtins/1.png -
在非__main__模块中
__builtins__
是对builtins
的__dict__
的引用,而不是builtins
本身。下面
是test.py
文件import builtins def printTest(): print(__builtins__ is builtins) print(__builtins__ is builtins.__dict__) print(type(__builtins__)) printTest()
运行结果为:
file:///D:/%E7%AC%94%E8%AE%B0/builtins/2.png再来一个
test2.py
文件,test2.py
importtest.py
import testtest.printTest()
file:///D:/%E7%AC%94%E8%AE%B0/builtins/3.png