我试图理解为什么可以使用导入模块引用任何导入,例如
#module master.py
import slave
然后
>>>import master
>>>print master.slave
给出
<module 'slave' from 'C:\Documents and Settings....'>
该功能的目的是什么?我可以看到它如何在包的__init__.py
文件中提供帮助,但没有别的。每个导入都添加到模块的命名空间并且模块的命名空间是从外部可见的,这是一个副作用吗?如果是这样,为什么他们没有对从其他模块导入的数据做出异常(例如,不将其显示为模块的其他模块的命名空间的一部分)?
答案 0 :(得分:1)
这是副作用,但可以有目的地使用,例如os.py
导入posixpath
或ntpath
path
以创建os.path
。