我很好奇该__builtin__
模块以及它是如何使用的,但我在Python3中找不到它!为什么感动?
Python 2.7
>>> import __builtin__
>>>
Run Code Online (Sandbox Code Playgroud)
Python 3.2
>>> import __builtin__
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named __builtin__
>>>
Run Code Online (Sandbox Code Playgroud)
Der*_*itz 83
该__builtin__
模块builtins
在Python3 中重命名为.
此更改解决了普通Python开发人员的两个混乱源.
'__builtins__'
或'__builtin__'
那是在全局命名空间中?Darn s!__builtin__
一个特殊的方法名称或模块?我说不出来.这种混乱主要是因为违反了pep8公约.此外,模块上缺乏多元化也妨碍了沟通.Guido必须从http://mail.python.org/pipermail/python-ideas/2009-March/003821.html解释以下内容,这些都有很好的说明:
[CPython]查看全局变量,其中包含一个特殊的魔术条目
__builtins__
(带有's'),这是查找内置函数的dict.当这个字典是相同的对象默认 内置的字典(这是__builtin__.__dict__
哪里__builtin__
-无"S" -是定义内置功能模块),它可以让你的超级用户权限; ...
例如,
Python2.7
>>> import __builtin__
>>> vars(globals()['__builtins__']) is vars(__builtin__)
True
>>>
Run Code Online (Sandbox Code Playgroud)
Python3.2
>>> import builtins
>>> vars(globals()['__builtins__']) is vars(builtins)
True
>>>
Run Code Online (Sandbox Code Playgroud)
相关资源:
其他名称更改 - http://docs.pythonsprints.com/python3_porting/py-porting.html#name-changes
有关如何__builtins__
在名称解析中使用的简洁说明- Python中的__builtin__模块