首页 > 其他 > 详细

【装饰器】原理以及基础使用

时间:2021-04-11 15:48:33      阅读:12      评论:0      收藏:0      [点我收藏+]
# 不带参数类函数
class TaskA(object): def __init__(self, f): # 实例化函数 self.f = f def __call__(self): # 添加功能 print("例:开始时间") start = time.time() self.f() # 执行函数 print("例:结束时间") print("记录操作时间、日志、缓存等用时操作 ----- 结束时间 - 开始时间",time.time() - start) @TaskA def func(): time.sleep(2) print("func") func()
技术分享图片

 


 

 

 

 

 

 

 

# 不带参数函数
def TaskB(func) : # 添加功能 def inner(*args,**kwargs): print("例:开始时间") start = time.time() func() print("例:结束时间") print("记录操作时间、日志、缓存等用时操作 ----- 结束时间 - 开始时间",time.time() - start) return inner @TaskB def foo( ): time.sleep(1) print("foo") foo( )
技术分享图片

 


 

 

 

 

 

 

 

 

 

# 带参数
def TaskC(text):   # 最外层用于传入参数
    
    def decorator(func) :   # 用户传入方法
        
        def inner(*args,**kwargs):  # 添加功能
            
            print("例:开始时间")
            start = time.time()
            
            # 执行参入函数
            func(name="name")
            print()
            print("传入参数",text)
            print()
        
            print("例:结束时间")
            print("记录操作时间、日志、缓存等用时操作  ----- 结束时间 - 开始时间",time.time() - start)
            
            
        return inner
    
    return decorator
                             
  
        
@TaskC(text="我是参数")
def fooc(name):
    time.sleep(1)
    print( "fooc",name)
          
fooc()
技术分享图片

 

 

 

 

【装饰器】原理以及基础使用

原文:https://www.cnblogs.com/wanghong1994/p/14643387.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!