当您启动 Python 解释器时,似乎在启动过程中会自动导入一些模块/包:
python
Python 2.7.6 (default, Jan 13 2014, 14:59:37)
...
>>> import sys
>>> for key in sys.modules.iterkeys():
... print(key)
...
os
sys
abc
others ...
但是,这些模块似乎已加载到不同的范围/命名空间中,因为如果没有额外的 import
就无法访问它们:
>>> abc
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'abc' is not defined
这是我的问题:
- 加载这些模块的具体目的是什么?
- 它们被加载到什么范围/命名空间?
最佳答案
sys
模块正在将它们加载到 sys.modules
字典命名空间中
如果你想,我想你可以访问它们
abc = sys.modules["abc"]
但不确定为什么要这样做
关于python - 为什么不能在没有额外的 `import` 语句的情况下引用似乎由解释器自动加载的模块?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30517948/