是否有一个函数将类作为参数并根据其子类的存在返回True
或False
?原则上可以吗?
class A:
pass
class B(A):
pass
has_children(A) # should return True
has_children(B) # should return False
我想知道无法访问globals()
,locals()
,vars()
的解决方案。
答案 0 :(得分:2)
您可以使用__subclasses__
方法:
def has_children(cls):
return bool(cls.__subclasses__())
此方法仅针对“新样式”类定义(从Python 2中的object
继承,在Python 3中是默认的)。