我试图理解装饰器如何更好地工作,但是当它不起作用时我一直感到困惑。
继承我所拥有/想要的东西:
class myClass(object):
@myDecorate("something")
def test(self, arg1):
print arg1
myInstance = myClass()
myInstance.test("i am arg1")
我会将一个参数传递给装饰器,它不会被发送到方法本身;而是习惯于在幕后做一些类方法不需要担心的事情。当我调用类方法时,我希望它将self
和arg1
发送给它。
我似乎无法弄清楚如何做到这一点......
答案 0 :(得分:2)
您可以这样做:
def myDecorate(something):
# do work here
def decorate(f):
def _wrapper(self, arg1, myOtherArg):
# do something with myOtherArg
return f(self, arg1)
return _wrapper
return decorate