您可以使用[Python-doc]方法获取直接子类:class.__subclasses__()>>> Device.__subclasses__()[<class 'Mobile'>, <class 'Computer'>]然而,这些也可能有子类。我们可以开发一个每次都获得下一代的算法,并一直这样做直到找不到新的子类,例如:def get_descendants(klass): gen = { klass } desc = set() while gen: gen = { skls for kls in gen for skls in kls.__subclasses__() } desc.update(gen) return desc或使用可变数量的参数:def get_descendants(*klass): gen = { *klass } desc = set() while gen: gen = { skls for kls in gen for skls in kls.__subclasses__() } desc.update(gen) return desc这将返回一个set()包含所有后代(直接和间接)的。