我有一个基类Example
,它有一个抽象方法example
。我想在example
函数上添加另一个decorator,我已经在下面做过了-decorator是@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
函数中,而不显式地编码它
你完全正确:修饰方法被重写。但是如果你只把
example
的“内部”抽象出来,你就可以实现你的目标:相关问题 更多 >
编程相关推荐