Python3.X动态加载模块和类,并执行特定的方法;

十点数据 1年前 ⋅ 2542 阅读
#coding=UTF-8

import importlib

1、获取模块对象

mName = "org.eseet.traffic.accident.TrafficAccidentyAnQuan"#模块路径,精确到.py文件
module = importlib.import_module(mName)

2、获取模块中某个类对象

className=“TrafficAccidentyAnQuan”
classObject = getattr(module, className)

3,初始化类对象;

cls_obj = classObject()

4,遍历类对象的方法

for methodName in dir(cls_obj):
    # 加载非__前缀的属性
    if methodName[0] != '_':
        # 获取导入obj方法。
        class_attr_obj = getattr(cls_obj, methodName)

        # 判断类属性是否为函数
        if hasattr(class_attr_obj, '__call__'):
            # 执行函数
            class_attr_obj()
        else:
            # 输出类属性值
            print(methodName, ' type:', type(class_attr_obj), ' value:', class_attr_obj)

全部评论: 0

    我有话说: