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的Django框架中的模版相关知识
Jul 15 Python
python实现斐波那契数列的方法示例
Jan 12 Python
python urllib爬取百度云连接的实例代码
Jun 19 Python
python中matplotlib实现最小二乘法拟合的过程详解
Jul 11 Python
python 递归遍历文件夹,并打印满足条件的文件路径实例
Aug 30 Python
Python tkinter实现的图片移动碰撞动画效果【附源码下载】
Jan 04 Python
解决Python安装后pip不能用的问题
Jun 12 Python
Python selenium根据class定位页面元素的方法
Feb 26 Python
5款Python程序员高频使用开发工具推荐
Apr 10 Python
Python格式化字符串f-string概览(小结)
Jun 18 Python
python顺序执行多个py文件的方法
Jun 29 Python
Pytorch 解决自定义子Module .cuda() tensor失败的问题
Jun 23 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 在线打包_支持子目录
2008/06/28 PHP
php empty() 检查一个变量是否为空
2011/11/10 PHP
php使用pdo连接sqlite3的配置示例
2016/05/27 PHP
php将文件夹打包成zip文件的简单实现方法
2016/10/04 PHP
PHP-CGI远程代码执行漏洞分析与防范
2017/05/07 PHP
YII2.0框架行为(Behavior)深入详解
2019/07/26 PHP
php加速缓存器opcache,apc,xcache,eAccelerator原理与配置方法实例分析
2020/03/02 PHP
js弹出层之1:JQuery.Boxy (二)
2011/10/06 Javascript
初识简单却不失优雅的Vue.js
2016/09/12 Javascript
easyui导出excel无法弹出下载框的快速解决方法
2016/11/10 Javascript
js 中文汉字转Unicode、Unicode转中文汉字、ASCII转换Unicode、Unicode转换ASCII、中文转换
2016/12/06 Javascript
jQuery实现圣诞节礼物动画案例解析
2016/12/25 Javascript
AngularJs 终极购物车(实例讲解)
2017/11/08 Javascript
Node.js使用Koa搭建 基础项目
2018/01/08 Javascript
js遍历添加栏目类添加css 再点击其它删除css【推荐】
2018/06/12 Javascript
JS实现的tab页切换效果完整示例
2018/12/18 Javascript
使用JS实现鼠标放上图片进行放大离开实现缩小功能
2021/01/27 Javascript
在Django框架中运行Python应用全攻略
2015/07/17 Python
基于Python的接口测试框架实例
2016/11/04 Python
浅谈python内置变量-reversed(seq)
2017/06/21 Python
一个Python最简单的接口自动化框架
2018/01/02 Python
python excel使用xlutils类库实现追加写功能的方法
2018/05/02 Python
python自动截取需要区域,进行图像识别的方法
2018/05/17 Python
python发送邮件脚本
2018/05/22 Python
Django用户身份验证完成示例代码
2020/04/03 Python
python获取整个网页源码的方法
2020/08/03 Python
Django filter动态过滤与排序实现过程解析
2020/11/26 Python
python中翻译功能translate模块实现方法
2020/12/17 Python
html5超简单的localStorage实现记住密码的功能实现
2017/09/07 HTML / CSS
松下电器美国官方商店:Panasonic美国
2016/10/14 全球购物
万代美国官网:PREMIUM BANDAI USA
2020/09/11 全球购物
毕业自荐书
2013/12/09 职场文书
抽奖活动主持词
2014/03/31 职场文书
党性分析自查总结
2014/10/14 职场文书
教师批评与自我批评总结
2014/10/16 职场文书
MySQL主从搭建(多主一从)的实现思路与步骤
2021/05/13 MySQL