【发布时间】:2021-02-21 17:26:07
【问题描述】:
def after_finish(func):
def _decorator(*args, **kwargs):
ret = func(*args, **kwargs)
print('after finish!')
return ret
return _decorator
class AbstractTask:
@after_finish
def run(self):
raise NotImplementedError
class ConcreteTask1(AbstractTask):
def run(self):
# do concrete task here
return 0
如上所示的代码,我有一个抽象的AbstractTask 类型,还有几个子类,我想把after_finish 装饰器放到run 方法中,这是一种适用于所有子类的通用行为类。我怎样才能通过只放置一次装饰器来达到这个目的?或者有没有其他方法可以在 python3 语法中做同样的事情?
【问题讨论】:
标签: python python-3.x python-decorators