【发布时间】:2013-10-01 10:44:01
【问题描述】:
我有一组不同的类,它们共享它们的大部分功能。它们的差异可以在单个方法中隔离,也可以在装饰器中隔离,以应用于其中一个基本方法。
派生类设置这个装饰器最干净的方法是什么,它必须应用于基类方法?我尝试了一些类似的方法,但没有成功,因为要装饰的方法已经绑定:
class Base(other):
decorator = lambda x:x
def __init__(self, *args, **kwargs):
self.post = self.decorator(self.post)
super(Base, self).__init__(*args, **kwargs)
def post(self):
pass
class Derived(Base):
decorator = some_decorator
【问题讨论】:
-
你的问题不是很清楚。它以什么方式不起作用?你能举例说明你想要发生的事情吗?你是说派生类应该继承基类方法,但装饰器不同?
-
派生类用于从基类继承东西,而您正试图做其他方式。
-
@hcwhsa:他试图覆盖基类的行为,这在子类中是完全合理的。这不是最常见的方式,但也不落后。
标签: python class python-decorators