【发布时间】:2014-06-13 21:46:36
【问题描述】:
我需要一种从抽象方法调用函数的方法,即
class A(object):
@abc.abstractmethod
def method1(self):
raise Exception("Unimplemented method")
def method2(self):
print "method1 finished"
class B(A):
def method1(self):
print "executing method1 from class B"
我需要一种方法来自动调用 A 类的 method2,在 method1 执行之后(应该在类 A 一侧完成 - 独立于继承的类)。
有什么好的方法吗?
【问题讨论】:
-
因为你继承自
A,你可以简单地调用self.method2()。 -
听起来你想在你的 API 中记录任何实现
method1的人必须在最后调用覆盖的版本,或者在最后直接调用self.method2。或者要求method1的实现者使用装饰器。 -
我想在A班做所有事情
-
@MartijnPieters - 完全正确,但在某种程度上它与继承的类是透明的