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

Python 如何测试从某个抽象类继承的对象类,python,python-3.x,class,oop,inheritance,Python,Python 3.x,Class,Oop,Inheritance,在Python中,如果要测试对象foo是否是foo的实例,请执行以下操作: if isinstance(foo, Foo): # do something 现在,假设Foo类是从Bar继承的一个特殊类,并且还有许多其他类从它继承:我从Foo1,Foo2,…,FooX,它们从Bar类继承 foo可以是这些Foox类中任何一个的实例。我感兴趣的是知道foo来自一个类,该类有一天继承自Bar。您知道一种简单/规范的方法吗?正确的方法可能是测试foo是否是Bar对象,这表明foo继承自Bar

在Python中,如果要测试对象
foo
是否是
foo
的实例,请执行以下操作:

if isinstance(foo, Foo):
    # do something
现在,假设
Foo
类是从
Bar
继承的一个特殊类,并且还有许多其他类从它继承:我从
Foo1
Foo2
FooX
,它们从
Bar
类继承


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

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

class Bar:
    pass

class Foo(Bar):
    pass

foo = Foo()

isinstance(foo, Bar)
输出: 您还可以检查类
Foo
是否是类
Bar
的子类:

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

你写的东西不管用吗?如果我正确理解了您的问题,那么听起来您已经找到了解决方案。我不够清楚,我将对其进行编辑。比我想的更简单:)
issubclass(Foo, Bar)   # notice Foo, the class, not the instance foo