当前位置: 首页 > 后端技术 > Python

Python实现了一个定时器,并统计运行时间

时间:2023-03-26 01:38:22 Python

我们通过两种方式来实现定时器。装饰器实现定时器生成器实现定时器装饰器实现定时器导入timedeftimer_dec(func):definner(*args,**kwargs):start=time.time()ret_val=func(*args,**kwargs)end=time.time()print(f'paytimeis{end-start}s')returnret_valreturninner@timer_decdefhaha??():print('我笑得很厉害')time.sleep(0.01)haha()输出结果让我笑。支付时间为0.010136842727661133秒。Generator使用generator方法实现定时器,需要借助Python的内置库contextlib。并不是一定要用contextlib,而是用contextlib可以更优雅。可以参考:python中with的用法,contextmanagerfromcontextlibimportcontextmanagerdefhaha??():print('I'mlaughingsohard')time.sleep(0.01)@contextmanagerdeftimer_gen():start=time.time()yieldend=time.time()print(f'paytimeis{end-start}s')withtimer_gen():haha??()输出结果makesmelaughpaytimeis0.010103464126586914s