python利用字典保存配置实现动态调用模块类方法
来源:互联网 发布:知我药妆官方旗舰店 编辑:程序博客网 时间:2024/05/24 04:49
python利用字典保存配置实现动态调用模块类方法
文件名:mytest,py
具体代码如下:
#coding=UTF-8class TestClass: def sub(self,a,b): return a-b def add(self,a,b): return a+b def chen(self,a,b): return a*bclass 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方法的使用
0 0
- python利用字典保存配置实现动态调用模块类方法
- python中动态加载模块和类方法实现
- python中动态加载模块和类方法实现
- python模块调用方法总结
- 利用swig实现python调用C/C++的方法
- 利用swig实现python调用C/C++的方法
- 利用swig实现python调用C/C++的方法
- Python利用字典实现switch功能
- Python利用字典实现switch功能
- VB动态调用类模块中的函数的方法
- python 动态调用模块内的函数
- 分配模块、通配符和动态方法调用
- 利用反射机制动态调用方法
- 利用反射机制动态调用方法
- 利用反射动态调用多个方法
- python调用C模块的方法
- python调用自编模块的方法
- 通配符实现动态方法调用
- C_语法_宏定义define和函数的作用…
- ARM指令集小记
- 解释和编译
- linux设备驱动makefile文件
- 关于linux块设备和字符设备的举例
- python利用字典保存配置实现动态调用模块类方法
- 【转】Linux2.6内核驱动与2.4的区…
- union
- 网上找的linux内核编译各种资料
- windows下visualbox+ubuntu开机自…
- ubuntu软件源相关
- 哦,杜鹃花的四月
- 大端(big endian)、小端(little endian)问题
- GDB调试程序