我想在模块中找到继承"基类"的所有类,并且模块由字符串指定。
E.g。
:nth-child(n)
在上面的示例中,for c in find_classes('robo.extras.contrib') :
o = c()
o.process(argv = self.argv[1:])
查看find_classes
中所有模块,查找使用方法robo.extras.contrib
继承类的类,实例化它并运行该方法。
我一直在浏览python.org但似乎没有找到这个问题的答案,如果有人能指出我正确的方向,或者甚至在这里给我一个快速的样本我会非常高兴。
谢谢:)
答案 0 :(得分:0)
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'):
...