Python知识:包的模块导入

王朝other·作者佚名  2008-05-18
窄屏简体版  字體: |||超大  

这里所讲不是用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

(我只试验了一层,多层的并未测试,有兴趣的可以把结果告诉我)

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航