python - 内置模块的内容如何在不导入 Python 的情况下在全局命名空间中可用?

标签 python python-3.x

我使用 Python 已经有一段时间了。我从来没有发现内置函数是如何工作的。换句话说,如何在没有导入任何模块来使用它们的情况下包含它们?如果我想添加到它们(本地)怎么办?

这可能看起来很幼稚。但是,我还没有真正找到任何答案来全面解释我们如何在开发脚本时使用内置函数、全局变量等。

简而言之,我们在哪里包含 builtins模块?

我遇到过this question .但它部分回答了我的问题。

最佳答案

答案的非实现细节部分是 builtins 模块,或 Python 2 中的 __builtin__,提供对内置命名空间的访问。如果您想修改内置插件(通常不应该),可以在 builtins 上设置属性。

答案的实现细节部分是 Python 以多种方式跟踪内置函数。例如,每个框架对象都会跟踪它正在使用的内置命名空间,这可能与其他框架的内置命名空间不同。您可以通过框架的 f_builtins 属性访问它。当 LOAD_GLOBAL指令无法在框架的全局变量中找到名称,它 looks在框架的内置函数中。在大多数全局命名空间中也有一个__builtins__ 全局变量,但它并不直接用于内置变量查找;相反,它用于在 certain situations 中初始化 f_builtins在框架对象创建期间。在全局 PyInterpreterState 中还有一个 builtins 引用,即 used as default builtins如果没有当前框架对象。

关于python - 内置模块的内容如何在不导入 Python 的情况下在全局命名空间中可用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54173621/

相关文章:

python - '>' not supported between instances of ' 海峡'和 'int'

python - 列表内的内部分组

python-3.x - Pandas 使用跨行条件计算每月出现的次数

python - 在 Python 中使用 statsmodels 的自回归模型

Python spynner 和 native_click

python - 在Python中根据条件替换图像像素颜色

python - Django 找不到静态文件

python - 在 python 中运行 xmlrunner 时没有打印到标准输出

python-3.x - 为什么 pip3 在 Ubuntu 20.04 上安装/更新软件包后要创建 kdewallet?

python - 如何检查字符串中的特定元素在python中是否相等?