帮助一个人。似乎无法得到装饰工作与继承。将其分解成我的临时工作区中最简单的示例。仍似乎无法得到它的工作。Python装饰器和继承
class bar(object):
def __init__(self):
self.val = 4
def setVal(self,x):
self.val = x
def decor(self, func):
def increment(self, x):
return func(self, x) + self.val
return increment
class foo(bar):
def __init__(self):
bar.__init__(self)
@decor
def add(self, x):
return x
糟糕,名称“装饰”未定义。
好的,@bar.decor
怎么样? TypeError:必须用bar实例作为第一个参数调用unbound方法“decor”(取而代之的是函数实例)
好的,@self.decor
怎么样?名称“自我”未定义。
好的,@foo.decor
怎么样?!名称“foo”未定义。
AaaaAAaAaaaarrrrgggg ...我做错了什么?
在你的榜样,你可以有'返回X + self.val'在'foo'的add'的'定义。你能不能在你的实际代码中做到这一点? – 2010-06-08 20:52:16
这是一个精炼的示例代码,突出显示了我正面临的问题。如果代码很简单,那么是的。但是,事实并非如此。 – wheaties 2010-06-08 21:04:10