【发布时间】:2019-01-18 21:57:26
【问题描述】:
我有一个基类Example 和一个抽象方法example。我想在example 函数上添加另一个装饰器,我在下面做了 - 装饰器是@foo。
当我使用这个基础 Example 类创建新类时,我创建了一个适当的 example 函数,@foo 应该做什么,最终不会起作用。
我认为问题在于,当我在新类上创建 example 函数时,它被“覆盖”了。
from abc import ABCMeta, abstractmethod
class Example(object):
__metaclass__ = ABCMeta
def __init__(self):
self.num = 0
@abstractmethod
@foo
def example(self, output):
pass
class ExampleSum(Example):
def example(self, output):
self.num = self.num + output
有什么指导吗?基本上,我希望 @foo 行为出现在 ExampleSum 的 example 函数中,而无需显式编码。
【问题讨论】:
标签: python class inheritance python-decorators