在运行时从python包导入类

时间:2014-10-18 07:41:08

标签: python

我正在尝试编写一个函数,该函数将class命名为参数并导入该类并执行某些任务。

  def search(**kwargs):
    """
    :return:
    """

    try:
        model = __import__('girvi.models', globals(), locals(),  kwargs['model_name'], -1)
       # Do some task
       return results
    except Exception:
        raise Exception('Model not found')

但事情是model有成功导入kwargs['model_name']的类,但我如何访问它。请有人帮助我。

1 个答案:

答案 0 :(得分:1)

我会尝试以下方法:

import importlib
import sys

def import_class(class_name, module_name = "girvi.models"):
    module = importlib.import_module(module_name)
    class_object = getattr(module, class_name) # does not work for nested classes
    return class_object

根据__import__,我们应该使用importlib.import_module