您的位置:首页 > 编程语言 > Python开发

Python中动态导入模块-pybatis的准备阶段(七)

2013-03-08 10:55 686 查看
动态导入模块可以不必在文件开头使用import进行导入。可以在使用到的时候再进行导入并使用。

__import__可以用来进行动态导入。

但是下面的方法也可以:

>>> del sysmod
>>> sysmod.path
Traceback (innermost last):
File "<stdin>", line 1, in <module>
NameError: name 'sysmod' is not defined

>>> impstr='import sys as sysmod'
>>> exec(impstr)
>>> sysmod.path
['', 'c:\\python32\\Lib\\site-packages\\eric5\\DebugClients\\Python3', 'C:\\Windows\\system32\\python32.zip', 'C:\\Python32\\DLLs', 'C:\\Python32\\lib', 'C:\\Python32', 'C:\\Python32\\lib\\site-packages', 'C:\\Python32\\lib\\site-packages\\PIL', 'C:\\Python32\\lib\\site-packages\\win32', 'C:\\Python32\\lib\\site-packages\\win32\\lib', 'C:\\Python32\\lib\\site-packages\\Pythonwin']

在pybatis中,使用了这个动态导入的特性。看下面代码:

#===============================================================================
# 引入需要的类对象
#===============================================================================
from com.pybatis.ClassPathList import classPathList
for classpath in classPathList:
lastindex = classpath.rindex('.')
importpath = "from " + classpath[:lastindex] + " import " + classpath[(lastindex + 1):]
exec(importpath)

上面的代码,引入了需要导入的类的路径放在一个列表中,最后再循环中导入这些类。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: