我使用 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/