import importlib
importlib是import的python实现
1、获取模块对象
m1 = importlib.import_module("sites.sites_pybuild")
print(m1)
输出:
<module 'sites.sites_pybuild' from 'D:\Documents and Settings\binliu\workspace\sbp_2.0\sites\sites_pybuild.py'>
2、获取类对象
aclass = getattr(m1, "sites_pybuild")
print(aclass)
输出:
<class 'sites.sites_pybuild.sites_pybuild'>
3、实例化对象
p = aclass("test")
相当于直接使用p = sites.sites_pybuild.sites_pybuild("test")
下面的文章也可以实现反射,主要思想是先导入module,然后使用globals()["classname"]获得类定义,再使用此类定义来初始化对象。
http://blog.csdn.net/lokibalder/article/details/3459722