Python装饰器简介
装饰器的作用
1、在不改变原函数代码的基础上对原函数执行前后添加功能
2、使代码简洁,增加代码复用性
装饰器原理
1 # 使用的是函数的闭包原理 , 没有改变函数的调用方式,可以对函数添加功能 2 def wrapper(fn): 3 def inner(*args, **kwargs): 4 print("在执行函数前") 5 fn(*args, **kwargs) 6 print('在执行函数后') 7 8 return inner 9 10 11 def main_func(*args): 12 print(*args) 13 14 15 main_func = wrapper(main_func) 16 17 main_func('执行主函数')
装饰器语法糖
使用 @函数名 来代替了 main_func = wrapper(main_func)
1 def wrapper(fn): 2 def inner(*args, **kwargs): 3 print("在执行函数前") 4 fn(*args, **kwargs) 5 print('在执行函数后') 6 7 return inner 8 9 @wrapper # main_func = wrapper(main_func) 10 def main_func(*args): 11 print(*args) 12 13 main_func('执行主函数')