您需要使装饰器成为描述符-通过确保其(元)类具有一个__get__
方法,或者通过使用装饰器 函数 而不是装饰器 类 简化(因为函数已经是描述符)。例如:
def dec_check(f):
def deco(self):
print 'In deco'
f(self)
return deco
class bar(object):
@dec_check
def foo(self):
print 'in bar.foo'
b = bar()
b.foo()
此打印
In deco
in bar.foo
如预期的。