python - 为什么 globals()['__builtins__'] 类型在导入时会发生变化?Python 是否为每个模块创建一个新的 __builtins__ 对象?
问题描述
假设我们有一些带有以下代码的模块A :
# A
foo = globals()['__builtins__']
print(foo)
print(type(foo))
运行它会给出输出:
<module 'builtins' (built-in)>
<class 'module'>
但是,如果我们将模块A导入另一个模块B:
# B
import A
打印以下内容:
{'__name__': 'A', '__doc__': None, '__package__': '', '__loader__': <_frozen_importlib ...
<class 'dict'>
所以我们的“内置”模块变成了一个字典,而 globals() 的所有其他元素保持不变。了解这背后的机制会很有趣。
解决方案
推荐阅读
- javascript - 从不使用 JSON.parse 的子字符串中获取数字
- php - PHP Regex 从路径中获得第二次出现
- r - 编织 rmarkdown 文档时 MiKTeX 失败
- css - 引导响应列冲突
- python - 如何从股票交易所等网站持续获取数据并使用 python 将其发送到 azure event hub?
- c++ - std::forward 中的模板推导失败?
- c++ - c++14通过引用返回值优化性能
- c# - “ConfigurationBuilder”不包含“AddJsonFile”的定义
- laravel - 在视图之前操作所有模型属性
- android - 如何应用具有真实 App id 和单元 id 的 Admob 代码..?