我已经使用Python很长时间了。我从未发现内置函数是如何工作的。换句话说,在不导入任何模块使用它们的情况下如何包含它们?如果要(本地)添加到他们该怎么办?
这似乎很幼稚。但是,我还没有真正找到能全面解释在开发脚本时如何使用内置函数,全局变量等的答案。
简而言之,我们在哪里包括builtins模块?
我遇到了this question。但这部分回答了我的问题。
答案 0 :(得分:3)
答案的未实现细节部分是builtins
模块或Python 2中的__builtin__
提供了对内置命名空间的访问。如果您想修改内置文件(通常不应该这样做),则可以在builtins
上设置属性。
答案的实现细节部分是Python以多种方式跟踪内置函数。例如,每个框架对象都跟踪其使用的内置名称空间,这可能与其他框架的内置名称空间不同。您可以通过框架的f_builtins
属性来访问它。当LOAD_GLOBAL
指令无法在框架的全局变量中找到名称时,它将在框架的内置函数中looks。在大多数全局名称空间中也有一个__builtins__
全局变量,但它不直接用于内置变量查找;相反,它用于在创建框架对象期间初始化certain situations中的f_builtins
。全局builtins
中还有一个PyInterpreterState
引用,如果没有当前框架对象,则为used as default builtins。