# 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))
原文:https://www.cnblogs.com/52-qq/p/14830799.html