Python 如何测试从某个抽象类继承的对象类
在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
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