python - 通过 __builtins__ 访问内置函数

原文 标签 python python-3.x

我有以下脚本:

一个.py

print(__builtins__.max)
import b

以及以下模块:

b.py
print(__builtins__.max)

使用 python3 a.py 启动它们,我得到:
<built-in function max>
Traceback (most recent call last):
  File "a.py", line 2, in <module>
    import b
  File "/home/antonio/Scrivania/b.py", line 1, in <module>
    print(__builtins__.max)
AttributeError: 'dict' object has no attribute 'max'

所以我不明白。为什么在脚本中 __builtins__ 分配给内置模块,而不是在模块中 __builtins__ 分配给字典?

最佳答案

不要使用 __builtins__ ;改用 builtins module
__builtins__ 对象是您不应依赖的实现细节。来自 builtins 模块文档:

As an implementation detail, most modules have the name __builtins__ made available as part of their globals. The value of __builtins__ is normally either this module or the value of this module’s __dict__ attribute. Since this is an implementation detail, it may not be used by alternate implementations of Python.



请注意我的重点;访问 __builtins__ 时,您可以拥有字典或模块对象。

关于python - 通过 __builtins__ 访问内置函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28050229/

相关文章:

python - 尝试使用scrapy搜寻值

python - 如何监视远程 PC 上的事件窗口

python - 如何从StackDriver Logging API反序列化App Engine应用程序日志?

python - 无法使用神经网络解释预测

python - Cython函数指针和异常

Django HTML模板中的Javascript变量

python - 多列转置 Pandas 数据框

python - Turtle参数代码可在Python 3中运行,但不能在Python2中运行

python - 使用python的剪贴板历史记录

python - 当列表项依赖于较早的项目时使用功能形式