美文网首页
python上下文管理器,实现代码块执行时间管理器

python上下文管理器,实现代码块执行时间管理器

作者: 取名字真的很烦啊 | 来源:发表于2020-05-24 23:24 被阅读0次

    这几天在看深入理解python特性,看到with上下文管理器部分,里面有提到自己实现代码块执行时间管理器,自己用装饰器和类的方式分别实现了下,代码如下:

    import time
    from contextlib import contextmanager
    
    ##### 用类的方式实现
    class timeManager:
        def __init__(self):
            self.start=None
        
       def __enter__(self):
            self.start=time.time()
            return self
    
        def __exit__(self,exc_type,exc_val,exc_tb):
            print('代码执行时间:',time.time-start,' s')
    
    ##### 用装饰器的方式实现
    @contextmanager
    def timeManage():
        start=time.time()
        yield()
        print('代码执行时间:',time.time-start,' s')
    
    ############ 测试 #########
    if __name__ == '__main__':
        with timeManager() as t:
            for i in range(1,100):time.sleep(0.01)
    
        with timeManage as tm:
            for i in range(1,100):time.sleep(0.01)
    
    

    相关文章

      网友评论

          本文标题:python上下文管理器,实现代码块执行时间管理器

          本文链接:https://www.haomeiwen.com/subject/vagsahtx.html