模塊動態導入

# def module_resolver(namespace):
#     namespace_parts = namespace.split(".")
#     module_name = ".".join(namespace_parts[0:-1])
#     cls_name = namespace_parts[-1]
#     try:
#         module = __import__(module_name, fromlist=["*"])
#         if hasattr(module, cls_name):
#             return getattr(module, cls_name)
#     except Exception as ex:
#         app_log.error("resolve %s failed with exception %s" % (namespace, ex))

# 建議使用方式二動態導入模塊
def module_resolver(namespace):
    from importlib import import_module
    namespace_parts = namespace.split(".")
    module_name = ".".join(namespace_parts[0:-1])
    cls_name = namespace_parts[-1]
    try:
        module = import_module(module_name)
        if hasattr(module, cls_name):
            return getattr(module_name, cls_name)
    except Exception as ex:
        app_log.error("resolve %s failed with exception %s" % (namespace, ex))

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章