【发布时间】:2021-11-10 03:11:45
【问题描述】:
我有一个扩展基类的类。实例化后,我想检查子类是否具有从其基础实现的类之一,但我不确定最好的方法。 hasattr(self, '[method]') 如果子进程没有实现,则返回 super 的方法,所以我试图区分。
这是一个例子:
class Base :
def __init__ ( self,) :
pass
def fail (self,) :
pass
# Now create the subclass w/o .fail
class Task ( Base ) :
def __init__ ( self, ):
print( hasattr( self, 'fail' ) ) # < returns True
当Task() 被实例化时,它会打印True,因为Task 从Base 继承.fail。但在这种情况下,我想知道Task 不 实现.fail,所以我想以某种方式返回False。好像我正在寻找类似isimplemented( self, 'fail' ) 的东西。我错过了什么?
【问题讨论】:
标签: python python-3.x oop inheritance superclass