动态实例化来自动态导入模块的字符串类名?

12 浏览
0 Comments

动态实例化来自动态导入模块的字符串类名?

在Python中,我需要实例化一个特定的类,但我只知道该类的名称是一个字符串,而这个类“居住”在一个动态导入的模块中。以下是一个示例:

加载器类脚本:

import sys
class loader:
  def __init__(self, module_name, class_name): # 两个参数都是字符串
    try:
      __import__(module_name)
      module = sys.modules[module_name]
      instance = getattr(module, class_name)() # 很明显这样是不行的,这是我的主要问题所在!
    except ImportError:
      # 处理导入错误

某个动态加载的模块脚本:

class myName:
  # 等等...

我使用这种安排来使任何动态加载的模块都可以按照预定义的行为被加载器类使用...

0