我动态导入了一个模块:
module_object = importlib.import_module(audio_module)
现在,如果我得到与该模块关联的属性列表:
print dir(module_object)
我得到以下内容:
['__builtins__', '__doc__', '__file__', '__name__', '__package__', 'aud_shell', 'shlex', 'sys']
我想访问位于此模块中的“aud_shell”类。但是由于这个模块是动态导入的,所以我不知道它里面有哪个类。如何在此导入的模块中搜索以获取类名,然后访问该类?
例如:
最后,我必须做这样的事情:
module_object.aud_shell.some_method()
我希望我能正确解释这一点。如果我没有任何意义,请告诉我。感谢。
答案 0 :(得分:1)
实际上在发布这个问题后5分钟我能够解决它,但是为了防止其他人试图在这里做同样的事情:
动态导入模块后:
module_object = importlib.import_module(audio_module)
您可以通过执行以下操作获取课程:
module_class = inspect.getmembers(module_object, inspect.isclass)
然后你需要用模块创建该类的对象。这可以通过以下方式完成:
class_object = getattr(module_object, module_class)
现在当我打印“class_object”时,我得到以下内容:
>>>print class_object
audio_module.aud_shell
现在我只需要弄清楚如何在类中获取方法列表并访问这些方法......