所以这就是我所拥有的:
抽象类:
class DataWrapper(object):
def decorator(f):
def preprocess(*args, **kwargs):
return f(*args, **kwargs)
return preprocess
@decorator
def datamethod1(self, ..): ...
@decorator
def datamethod2(self, ..): ...
继承类:
class DataManipulation(DataWrapper):
def __init__(self, ..): ..
def decorator(f):
print 'here'
def preprocess(*args, **kwargs):
ret = f(*args, **kwargs)
return preprocess
本质上,我有一堆通用数据方法(在 DataWrapper 中定义),它们被各种类使用。我允许定义装饰器以在返回之前对数据执行任何前/后处理,这在 DataWrapper 中定义为占位符。
不幸的是,当我尝试在继承的类中定义装饰器时,它并没有被覆盖;即“这里”没有被打印。
我看到了这个并尝试在继承的类中添加覆盖装饰器,虽然没有错误,'here' 仍然没有被打印出来。
有人有什么建议吗?