Python类装饰器
class person():
# 初始化要装饰的函数
def __init__(self,fn):
self.__fn = fn
# 在call方法中使用目标函数
def __call__(self, *args, **kwargs):
print('呵呵')
self.__fn()
@person
def show():
print('哈哈')
show()
# 方法之所以能使用是因为其自带__call__方法
# 输出:
# 呵呵
# 哈哈
分析:
- person类修饰了方法show,show方法作为fn参数传给了person的私有属性fn
- 自动调用call方法