寻找由字符串指定的 modules/classes

Looking for modules/classes specified by string

我想在继承了一个"base class"的模块中找到所有classes,并且该模块由一个字符串指定。
例如

for c in find_classes('robo.extras.contrib') :
 o = c()
 o.process(argv = self.argv[1:])

在上面的例子中,find_classes 遍历 robo.extras.contrib 中的所有模块,寻找 class 继承了 class 方法 process 的模块,实例化它并运行该方法。

我一直在寻找 python.org 但似乎没有找到这个问题的答案,如果有人能给我指明正确的方向,或者甚至在这里给我一个快速示例,我会非常感谢开心

谢谢:)

import inspect, importlib
def find_classes(module, with_method=None):
    module = importlib.import_module(module)
    return [
        c for _, c in inspect.getmembers(module, inspect.isclass)
        if not with_method or with_method in dir(c)
    ]

然后:

for c in find_classes('robo.extras.contrib', with_method='process'):
...