如何在Python中检查类是否有子类?

如何在Python中检查类是否有子类?,python,python-2.7,python-3.x,Python,Python 2.7,Python 3.x,是否有函数将类作为参数并根据其子类的存在返回True或False?原则上可能吗 class A: pass class B(A): pass has_children(A) # should return True has_children(B) # should return False 我想知道一个不需要访问globals(),locals(),vars()的解决方案。您可以使用\uuuuuuuu子类方法: def has_children(cls): re

是否有函数将类作为参数并根据其子类的存在返回
True
False
?原则上可能吗

class A:
    pass

class B(A):
    pass

has_children(A)  # should return True
has_children(B)  # should return False

我想知道一个不需要访问
globals()
locals()
vars()
的解决方案。您可以使用
\uuuuuuuu子类
方法:

def has_children(cls):
    return bool(cls.__subclasses__())

此方法仅为“新样式”类定义(继承自Python 2中的
对象,Python 3中的默认值)。

谢谢,它起了作用。仅供参考,我刚刚在