为什么可以使用python中的导入模块引用导入的模块

时间:2010-03-09 04:43:07

标签: python import namespaces module

我试图理解为什么可以使用导入模块引用任何导入,例如

#module master.py
import slave

然后

>>>import master
>>>print master.slave

给出 <module 'slave' from 'C:\Documents and Settings....'>

该功能的目的是什么?我可以看到它如何在包的__init__.py文件中提供帮助,但没有别的。每个导入都添加到模块的命名空间并且模块的命名空间是从外部可见的,这是一个副作用吗?如果是这样,为什么他们没有对从其他模块导入的数据做出异常(例如,不将其显示为模块的其他模块的命名空间的一部分)?

1 个答案:

答案 0 :(得分:1)

这是副作用,但可以有目的地使用,例如os.py导入posixpathntpath path以创建os.path