如何找到给定名称的类的所有子类?

如何找到给定名称的类的所有子类?

我需要一种工作方法来获取从Python中的基类继承的所有类。



SMILET
浏览 630回答 3
3回答

Qyouu

如果您只想要直接子类,那么.__subclasses__()效果很好。如果您想要所有的子类,等等,您将需要一个函数来完成这个任务。下面是一个简单的、可读的函数,它递归地查找给定类的所有子类:def get_all_subclasses(cls):     all_subclasses = []     for subclass in cls.__subclasses__():         all_subclasses.append(subclass)         all_subclasses.extend(get_all_subclasses(subclass))     return all_subclasses

HUX布斯

最简单的一般形式的解决方案:def get_subclasses(cls):     for subclass in cls.__subclasses__():         yield from get_subclasses(subclass)         yield subclass和一个类方法,以防有一个继承自:@classmethoddef get_subclasses(cls):     for subclass in cls.__subclasses__():         yield from subclass.get_subclasses()         yield subclass
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python