当前位置:Linux教程 - Linux综合 - Python知识:包的模块导入

Python知识:包的模块导入

  这里所讲不是用import名令,而是讲用__import__函数。 如果我们有一个testa.py文件,我们可以用module=__import__('testa')来导入它。这样可以用module.属性来使用testa.py中的属性。如果我们有一个包,如: 在当前子目录下有一个名为:modules的目录,其中有__init__.py,testa.py两个文件。 因为在modules目录下有__init__.py文件,所以目录modules可以视为一个包,即将整个目录作为一个模块(象Java一样)。如果想导入testa.py,则可以使用import modules.testa.py 但如果使用__import__函数,情况有变化(可以参考文档中关于__import__的说明)。大概就是:使用__import__导入包形式的模块,如module=__import__('modules.testa'),此时返回的不是testa模块的对象,而是包的对象,所以想导入 testa可以使用文档中的方法: def my_import(name): mod = __import__(name) components = name.split('.') for comp in components[1:]: mod = getattr(mod, comp) return mod (我只试验了一层,多层的并未测试,有兴趣的可以把结果告诉我)

(出处:http://www.sheup.com)