博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python使用上下文对代码片段进行计时,非装饰器
阅读量:5060 次
发布时间:2019-06-12

本文共 684 字,大约阅读时间需要 2 分钟。

之前发过了一组常用的装饰器,包括了一个where_is_it_called的装饰器,可以计时和对入参和返回结果,被何处调用进行记录,十分强大。

 

这是用上下文,上下文的好处是,不需要抽成函数才能计时。

 

class TimerContextManager(object):    """    用上下文管理器计时,可对代码片段计时    """    log = LogManager('TimerContext').get_logger_and_add_handlers()    def __enter__(self):        self._line = sys._getframe().f_back.f_lineno  # 调用此方法的代码的函数        self._file_name = sys._getframe(1).f_code.co_filename  # 哪个文件调了用此方法        self.time_start = time.time()    def __exit__(self, exc_type, exc_val, exc_tb):        t_spend = time.time() - self.time_start        self.log.debug(f'对下面代码片段进行计时:  \n执行"{self._file_name}:{self._line}" 用时 {t_spend} 秒')

 

 

 测试下:

 

 

 

转载于:https://www.cnblogs.com/ydf0509/p/9520145.html

你可能感兴趣的文章
css实现显示隐藏的5种方法
查看>>
anaconda3安装cv2模块(python3.6)
查看>>
python成长之路【第二篇】:列表和元组
查看>>
R-CNN论文详解(转载)
查看>>
关于矩阵的特征向量和特征值的含义
查看>>
MTK Android 标准编译命令
查看>>
Autofac 组件、服务、自动装配
查看>>
有一种力量叫坚持
查看>>
vs2010+qt4.8.6
查看>>
FZU 2057 家谱(dfs)
查看>>
[转]C#如何在ListView失去焦点的情况下仍然保持Item高亮
查看>>
MATLAB的crack安装小曲
查看>>
JavaScript方法splice()和slice()
查看>>
Windows_Linux系统环境中搭建私有云直播流媒体服务
查看>>
曾有一个人,爱我如生命(3)
查看>>
[转载]oracle删除数据后的恢复
查看>>
iOS 关于UITabVIew刷新的几种方法(针对初学者)
查看>>
B广搜深搜
查看>>
nyoj-----127星际之门(一)
查看>>
iOS中从相机中选取多张照片
查看>>