如何测试对象类从某个抽象类继承

时间:2019-05-31 23:48:19

标签: python python-3.x class oop inheritance

在Python中,当您要测试对象fooFoo的实例时,您可以这样做:

if isinstance(foo, Foo):
    # do something

现在,假设Foo类是继承自Bar的专门类,并且还有很多其他类继承自我:Foo1,{{1 }},Foo2...,它们继承自FooX类。

Bar可以是任何foo类中的一个实例。我感兴趣的是知道Foox来自一类从foo继承的类。您知道简单/规范的方法吗?

1 个答案:

答案 0 :(得分:1)

正确的方法可能是测试foo是否是Bar对象,这表明Foo是从Bar继承的。

class Bar:
    pass

class Foo(Bar):
    pass

foo = Foo()

isinstance(foo, Bar)

输出:

True

您还可以检查类Foo是否是类Bar的子类:

issubclass(Foo, Bar)   # notice Foo, the class, not the instance foo