python中isinstance的issubclass相当于什么?

时间:2009-11-03 08:57:40

标签: python introspection

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

e.g。

class Bar(Foo):
  pass

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

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

1 个答案:

答案 0 :(得分: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)