[英]How to decorate a class method with arguments?
我试图了解装饰器如何更好地工作,但是当它不起作用时,我总是感到困惑。
这是我所拥有/想要的:
class myClass(object):
@myDecorate("something")
def test(self, arg1):
print arg1
myInstance = myClass()
myInstance.test("i am arg1")
我将一个参数传递给装饰器,该参数将不会发送给方法本身。 而是用来在幕后做一些类方法不需要担心的事情。 当我调用类方法时,我希望它向其发送self
和arg1
。
我似乎不知道该怎么做...
您可以执行以下操作:
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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.