8

给定一个对象,我如何判断它是一个类,还是给定类 Foo 的子类?

例如

class Bar(Foo):
  pass

isinstance(Bar(), Foo) # => True

issubclass(Bar, Foo) # <--- how do I do that?
4

1 回答 1

22

它的工作原理与人们期望的一样......

class Foo():
    pass

class Bar(Foo):
    pass

class Bar2():
    pass

print issubclass(Bar, Foo)  # True
print issubclass(Bar2, Foo) # False

如果您想知道某个类的实例是否派生自给定的基类,您可以使用:

bar_instance = Bar()
print issubclass(bar_instance.__class__, Foo)
于 2009-11-03T09:01:43.867 回答