示例代码:
class Test(object):
def __init__(self, func):
self.func = func
def __call__(self):
print("这里是装饰器添加的方法")
ret = self.func()
return ret
# ****
@Test
def get_str():
return "hello"
# ****
# 注意:以上就相当于:get_str = Test(get_str)
print(get_str()) # 注意:实例对象带括号,就是调用其__call__方法
重点:
get_str = Test(get_str),只不过是放到类里了。