装饰器传参数

def decorator(number): # 第一层接收装饰器的参数
def wrapper1(func): # 第二层接收 被装饰的函数
def wrapper(*args, **kwargs): # 第三层接收被装饰的函数的参数
print("装饰器传的参数为:", number)
print('----装饰器---start----')
 
result = func(*args, **kwargs)
 
print('----装饰器---end----')
# 返回原功能函数的调用的结果
return result
 
return wrapper
 
return wrapper1
 
 
@decorator(30) # fumc = decorator(30)(fumc)
def fumc(a, b):
print('---dunc---:', a + b)
 
return 'func1111最后返回的数据======='
 
@decorator(60) # fumc = decorator(30)(fumc)
def fumc2(a, b):
print('---dunc---:', a + b)
 
return 'func2222最后返回的数据======='
 
if __name__ == '__main__':
res = fumc(11, 22) # 使用debug查看执行流程
res2 = fumc2(5,3)
 
print(res)
print(res2)
posted @ 2021-08-22 23:05  水迹  阅读(23)  评论(0编辑  收藏  举报