1.先放一下原文连接——原文链接
2.我目前的理解
- _ _ bulitin _ _ —— Python2.X版本对内建模块的命名bulitins——Python3.X版本对内建模块的命名。_ _ bulitins _ _ —–对内建模块的引用,支持Python2,3X
- 内建模块,又被称为自动载入的模块,其在Python启动后会首先被加载到内存中,故内建模块可以被直接利用。
- 当我们想向内建模块内添加模块的时候,必须导入_ _ builtin _ _ 到相应的作用域。而 _ builtins _ _ ,即 _ builtin _ _ 的引用,则是一个被动的过程 。
- 但根据 _ _ builtin _ _ 的应用方面的不同,其引用的具体内容也有差别。文章中提到了主模块 _ _ main _ _与非主模块的概念,我目前的理解就是,比如说你写了个.py的脚本,这个脚本中import了其他一些模块的时候,这个.py脚本本身就叫做主模块,而那些被import的脚本就叫做非主模块。
- 在主模块中应用 _ _ builtin _ _ 时,其与 _ _ builtins _ 等价,此时, builtins _ 的类型就是模块类型。在非主模块的情况下, _ builtins _ 仅仅是对 _ builtin . _ dict _ 的引用,此时, builtins _的类型是字典。
6.总结,其实按照作者的意思,两者的区别几乎可以忽略不计,但是,这样写,可能就是程序员们的小骄傲把。