[英]How to access a class from a dynamically imported module
我已经动态导入了一个模块:
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()
我希望我能正确解释。 让我知道我是否没有任何道理。 谢谢。
实际上,在发布此问题后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
现在我只需要弄清楚如何在类中获取方法列表并访问这些方法...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.