Python装饰器(英文decorator)
装饰器的本质也是函数 为其他函数添加附加功能。
装饰器的存在其实就是为了在需要添加新功能时不影响之前版本的使用的同时来增加新功能,即实现原函数无侵入的增加拓展功能,其实也是一种“偷懒”的办法。它的使用场景较多,比如:插入日志、性能测试、事务处理、缓存、权限校验等场景。有了装饰器,我们就可以抽离出大量与函数功能本身无关的雷同代码并继续重用。
Python装饰器的两大原则
(1)在不修改被修饰函数源代码的同时为其增加功能
(2)不修改被装饰的函数的调用方式
装饰器的使用:
参考这篇博客:https://blog.csdn.net/xiangxianghehe/article/details/77170585?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param
import time
# 装饰器
def decorator(func): # func为装饰器绑定的方法(绑定装饰器后自动传入)
def Deco(*arg1, **kwargs): # (传入非固定参数)这样即使装饰函数不带参数也可被装饰 如果没有参数也可以写成空,如果固定参数也可以写成固定的
# Deco() 或者 Deco(x),下面的func响应变更👇
start_time = time.time()
func(*arg1, **kwargs)
end_time = time.time()
print("time:", end_time - start_time, "秒")
return Deco # 返回Deco方法
@decorator # 添加装饰器
def test():
time.sleep