代码之家  ›  专栏  ›  技术社区  ›  Martin DeMello

在Python中IsInstance的IsubClass等效于什么?

  •  8
  • Martin DeMello  · 技术社区  · 15 年前

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

    例如

    class Bar(Foo):
      pass
    
    isinstance(Bar(), Foo) # => True
    
    issubclass(Bar, Foo) # <--- how do I do that?
    
    1 回复  |  直到 15 年前
        1
  •  22
  •   ChristopheD    15 年前

    它的工作正如人们所期望的那样…

    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)