我不能从子类的析构函数调用父类的析构函数。 请检查以下代码:
class BaseClass(object):
def __del__(self):
print 'BaseClass->Destructor'
class DerivativeClass(BaseClass):
def __del__(self):
print 'DerivativeClass->Destructor'
#Invoke destructor of the base class, it works
BaseClass.__del__(self)
#Doesn't work
#super(DerivativeClass, self).__del__()
instance = DerivativeClass()
当我在DerivativeClass.__del__()
中使用super(DerivativeClass, self).__del__()
时,出现了以下错误:
问题:
为什么我不能在子类的析构函数中使用super
,而在子类的构造函数中却完全可以使用呢?在
这似乎只在运行时退出时发生(因为
DerivativeClass
是None
)。在这很好:
这个也很好:
^{pr2}$还有这个:
在片段1和3中,我确保实例在类之前死亡。在片段2中,我以一种相当丑陋的方式回避了整个问题。在
相关问题 更多 >
编程相关推荐