python - 如果没有在 Python 中导入,内置模块的内容如何在全局命名空间中可用?
问题描述
我已经使用 Python 很长时间了。我从来没有发现内置函数是如何工作的。换句话说,如何在没有导入任何模块来使用它们的情况下包含它们?如果我想(本地)添加到它们怎么办?
这可能看起来很幼稚。但是,我还没有真正找到任何答案来全面解释我们在开发脚本时如何使用内置函数、全局变量等。
简而言之,我们在哪里包含内置模块?
我遇到过这个问题。但它对我的问题给出了部分答案。
解决方案
答案的未实现细节部分是该builtins
模块或__builtin__
在 Python 2 中提供对内置命名空间的访问。如果你想修改内置插件(你通常不应该),设置属性builtins
就是你的做法。
答案的实现细节部分是 Python 以多种方式跟踪内置函数。例如,每个框架对象都会跟踪它正在使用的内置命名空间,这可能与其他框架的内置命名空间不同。您可以通过框架的f_builtins
属性访问它。当一条LOAD_GLOBAL
指令在框架的全局变量中找不到名称时,它会在框架的内置函数中查找。大多数全局命名空间中还有一个__builtins__
全局变量,但它不直接用于内置变量查找;相反,它用于在框架对象创建期间f_builtins
的某些情况下进行初始化。builtins
global 中还有一个引用,用作默认内置PyInterpreterState
函数如果没有当前框架对象。
推荐阅读
- typo3 - 动态元素
- c++ - 如何在另一个字符串c ++中的最后一个反斜杠之后添加一个字符串
- r - 如何使用 ggsignif 包将 p 值添加到堆积条形图?
- ubuntu - nvidia-smi 和 nvidia x 服务器设置之间的顺序不同
- logback - 是否可以使用 logback.xml 从 ch.qos.logback 配置日志消息?
- windows - 用于在多个目录中创建相同文件夹的 PowerShell 脚本
- node.js - HTTP POST Firebase 云函数“Access-Control-Allow-Origin”错误
- .net - Convert XDocument to string without added /r /n
- login - Blue Prism - 输入文本框登录名和密码,但网站显示请输入用户名和密码
- jquery - 如何完美地居中一个根据用户输入而变化的圆