Python 使用with上下文实现计时功能


Posted in Python onMarch 09, 2018

引言

with 语句是从 Python 2.5 开始引入的一种与异常处理相关的功能(2.5 版本中要通过 from __future__ import with_statement 导入后才可以使用),从 2.6 版本开始缺省可用(参考 What's new in Python 2.6? 中 with 语句相关部分介绍)。with 语句适用于对资源进行访问的场合,确保不管使用过程中是否发生异常都会执行必要的“清理”操作,释放资源,比如文件使用后自动关闭、线程中锁的自动获取和释放等。

在Python常常需要记录一段代码运行了多长时间,普通的一般用两个 time.time() ,然后计算差值;高级一点的,就是写一个计时装饰器,用装饰器包裹方法,记录运行时间,但这这意味着你的代码需要写在函数里,然后才能使用此计时装饰器。

今天我要介绍的是一种可以给一段代码计时,而不是一个函数计时的方便的、“高级的”的Python计时方法。

代码如下:

from contextlib import contextmanager
@contextmanager
def timer(name): 
 start = time.time()
 yield
 print(f'[{name}] done in {time.time() - start:.2f} s')

使用方法:

with timer('Test'): 
 i = 0
 while i < 1000000:
  i += 1

输出:

[Test] done in 0.11 s

从1加到1百万需要0.11s。可以在 timer 通过修改 .2f 来修改时间精度。

总结

以上所述是小编给大家介绍的Python 使用with上下文实现计时功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Python 相关文章推荐
python实现用于测试网站访问速率的方法
May 26 Python
Python实现统计代码行的方法分析
Jul 12 Python
Python使用Selenium爬取淘宝异步加载的数据方法
Dec 17 Python
numpy中的ndarray方法和属性详解
May 27 Python
pytorch多GPU并行运算的实现
Sep 27 Python
如何基于python操作excel并获取内容
Dec 24 Python
python3连接mysql获取ansible动态inventory脚本
Jan 19 Python
Python 实现使用空值进行赋值 None
Mar 12 Python
Python打印特殊符号及对应编码解析
May 07 Python
Python Spyder 调出缩进对齐线的操作
Feb 26 Python
Python深度学习之Pytorch初步使用
May 20 Python
OpenCV-Python实现油画效果的实例
Jun 08 Python
TensorFlow搭建神经网络最佳实践
Mar 09 #Python
TensorFlow实现Batch Normalization
Mar 08 #Python
用Django实现一个可运行的区块链应用
Mar 08 #Python
Python pyinotify日志监控系统处理日志的方法
Mar 08 #Python
TensorFlow模型保存和提取的方法
Mar 08 #Python
火车票抢票python代码公开揭秘!
Mar 08 #Python
Python实现定时备份mysql数据库并把备份数据库邮件发送
Mar 08 #Python
You might like
PHP下判断网址是否有效的代码
2011/10/08 PHP
thinkPHP中钩子的使用方法实例分析
2017/11/16 PHP
php实现获取农历(阴历)、节日、节气的类与用法示例
2017/11/20 PHP
jquery键盘事件介绍
2011/01/31 Javascript
JavaScript DOM元素尺寸和位置
2015/04/13 Javascript
JavaScript中的slice()方法使用详解
2015/06/06 Javascript
javascript实现添加附件功能的方法
2015/11/18 Javascript
jQuery Validation Plugin验证插件手动验证
2016/01/26 Javascript
Javascript的表单验证-揭开正则表达式的面纱
2016/03/18 Javascript
vue里面父组件修改子组件样式的方法
2018/02/03 Javascript
详解创建自定义的Angular Schematics
2018/06/06 Javascript
微信小程序顶部导航栏滑动tab效果
2019/01/28 Javascript
详解小程序用户登录状态检查与更新实例
2019/05/15 Javascript
vue中$refs, $emit, $on, $once, $off的使用详解
2019/05/26 Javascript
vue项目创建步骤及路由router
2020/01/14 Javascript
微信小程序pinker组件使用实现自动相减日期
2020/05/07 Javascript
vue-openlayers实现地图坐标弹框效果
2020/09/24 Javascript
Python实现批量修改文件名实例
2015/07/08 Python
Python中的一些陷阱与技巧小结
2015/07/10 Python
python函数的5种参数详解
2017/02/24 Python
python定向爬取淘宝商品价格
2018/02/27 Python
利用TensorFlow训练简单的二分类神经网络模型的方法
2018/03/05 Python
Pipenv一键搭建python虚拟环境的方法
2018/05/22 Python
Python 解决OPEN读文件报错 ,路径以及r的问题
2019/12/19 Python
用 Python 制作地球仪的方法
2020/04/24 Python
Python判断变量是否是None写法代码实例
2020/10/09 Python
通用的Django注册功能模块实现方法
2021/02/05 Python
美国男装连锁零售商:Men’s Wearhouse
2016/10/14 全球购物
《走一步再走一步》教学反思
2014/02/15 职场文书
大学生党员自我剖析材料
2014/10/06 职场文书
2014个人年度工作总结
2014/12/15 职场文书
技能培训通讯稿
2015/07/18 职场文书
2016年会领导致辞稿
2015/07/29 职场文书
《秋思》教学反思
2016/02/23 职场文书
新手,如何业余时间安排好写作、提高写作能力?
2019/10/21 职场文书
python神经网络学习 使用Keras进行简单分类
2022/05/04 Python