我希望能够在类方法上使用包装器:
def wrapper(f):
def inner(*args,**kwargs):
print 'inner '+f.__name__
x = f(*args,**kwargs)
return x
return inner
class A:
@wrapper
def f1(x=55):
return x
print A().f1()
这将返回< main 。实例位于0x05FF7530>
如何返回包装函数A.f1()的结果?
答案 0 :(得分:2)
你忘记了自我论证:
class A:
@wrapper
def f1(self, x=55):
return x
答案 1 :(得分:0)
如果您确实想按照问题中的说明进行调用,请将其设为classmethod
:
class A:
@classmethod
@wrapper
def f1(self, x=55):
return x
>>> A.f1()
inner f1
55
>>>