python中动态加载模块和类方法实现测试代码
文件名: mytest.py 具体代码如下:
注意:模块名,类名,方法名都是变量。
#coding=UTF-8
class TestClass:
def sub(self,a,b):
return a-b
def add(self,a,b):
return a+b
def echo(self):
print "test"
def main():
class_name = "TestClass" #类名
module_name = "mytest" #模块名
method = "echo" #方法名
module = __import__(module_name) # import module
print "#module:",module
c = getattr(module,class_name)
print "#c:",c
obj = c() # new class
print "#obj:",obj
print(obj)
obj.echo()
mtd = getattr(obj,method)
print "#mtd:",mtd
mtd() # call def
mtd_add = getattr(obj,"add")
t=mtd_add(1,2)
print "#t:",t
mtd_sub = getattr(obj,"sub")
print mtd_sub(2,1)
if __name__ == '__main__':
main()
执行后输出如下:
> "D:\Python27\python.exe" "D:\test\src\mytest.py"
#module:
#c: mytest.TestClass
#obj:
test
#mtd:
test
#t: 3
1