python利用字典保存配置实现动态调用模块类方法
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 chen(self,a,b): return a*b class TestClassA: def sub(self,a,b): return a-b def add(self,a,b): return a+b def chen(self,a,b): return a*b class TestClassB: def sub(self,a,b): return a-b def add(self,a,b): return a+b def chen(self,a,b): return a*b sys_config={} sys_config["01"]=['mytest','TestClassA','add'] sys_config["02"]=['mytest','TestClassA','sub'] sys_config["03"]=['mytest','TestClassA','chen'] sys_config["04"]=['mytest','TestClassB','add'] sys_config["05"]=['mytest','TestClassB','sub'] sys_config["06"]=['mytest','TestClassB','chen'] def main(): class_name = "TestClass" #类名 module_name = "mytest" #模块名 method = "chen" #方法名 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.chen(2,3) mtd = getattr(obj,method) print "#mtd:",mtd print mtd(2,3) # 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) ywdm='02' my_module_name=sys_config[ywdm][0] my_class_name=sys_config[ywdm][1] my_method_name=sys_config[ywdm][2] my_module = __import__(my_module_name) my_class = getattr(my_module,my_class_name) my_obj = my_class() my_method = getattr(my_obj,my_method_name) print my_method(5,2) if __name__ == '__main__': main()
几个注意点:
1. 字典保存配置。
2. getattr方法的使用
最后更新:2017-04-03 12:56:06
上一篇:
Javascript:继承和原型链
下一篇:
win7系统笔记本有线连接受限制有黄色感叹号解决方法
Picasso and Android-Universal-Image-Loader缓存框架
开发者论坛一周精粹(第十七期) :【漏洞预警】Windows再被爆SMB服务0day漏洞,阿里云提示您关注并修复
php视频课程
w3c系列之CSS(四):深入理解盒模型
jQueryDom——Select、Option
Welcome Docker to SUSE Linux Enterprise Server【水平有限,中英对照,求纠错】
淘富成真,硬件智能—— 硬件创新一站赋能平台
github 的使用
机器视觉技术背后的行业趋势
GDS2017全球域名峰会在厦举行,“信站大全”在这里居然……