电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

Python 實現一個計時器

瀏覽:80日期:2022-07-16 09:31:23

問題

你想記錄程序執行多個任務所花費的時間

解決方案

time 模塊包含很多函數來執行跟時間有關的函數。 盡管如此,通常我們會在此基礎之上構造一個更高級的接口來模擬一個計時器。例如:

import timeclass Timer: def __init__(self, func=time.perf_counter): self.elapsed = 0.0 self._func = func self._start = None def start(self): if self._start is not None: raise RuntimeError(’Already started’) self._start = self._func() def stop(self): if self._start is None: raise RuntimeError(’Not started’) end = self._func() self.elapsed += end - self._start self._start = None def reset(self): self.elapsed = 0.0 @property def running(self): return self._start is not None def __enter__(self): self.start() return self def __exit__(self, *args): self.stop()

這個類定義了一個可以被用戶根據需要啟動、停止和重置的計時器。 它會在 elapsed 屬性中記錄整個消耗時間。 下面是一個例子來演示怎樣使用它:

def countdown(n): while n > 0: n -= 1# Use 1: Explicit start/stopt = Timer()t.start()countdown(1000000)t.stop()print(t.elapsed)# Use 2: As a context managerwith t: countdown(1000000)print(t.elapsed)with Timer() as t2: countdown(1000000)print(t2.elapsed)

討論

本節提供了一個簡單而實用的類來實現時間記錄以及耗時計算。 同時也是對使用with語句以及上下文管理器協議的一個很好的演示。

在計時中要考慮一個底層的時間函數問題。一般來說, 使用 time.time() 或 time.clock() 計算的時間精度因操作系統的不同會有所不同。 而使用 time.perf_counter() 函數可以確保使用系統上面最精確的計時器。

上述代碼中由 Timer 類記錄的時間是鐘表時間,并包含了所有休眠時間。 如果你只想計算該進程所花費的CPU時間,應該使用 time.process_time() 來代替:

t = Timer(time.process_time)with t: countdown(1000000)print(t.elapsed)

time.perf_counter() 和 time.process_time() 都會返回小數形式的秒數時間。 實際的時間值沒有任何意義,為了得到有意義的結果,你得執行兩次函數然后計算它們的差值。

以上就是Python 實現一個計時器的詳細內容,更多關于Python 計時器的資料請關注好吧啦網其它相關文章!

標簽: Python 編程
相關文章:
主站蜘蛛池模板: MOOG伺服阀维修,ATOS比例流量阀维修,伺服阀维修-上海纽顿液压设备有限公司 | 车载加油机品牌_ 柴油加油机厂家 | 医学动画公司-制作3d医学动画视频-医疗医学演示动画制作-医学三维动画制作公司 | 技德应用| 电竞馆加盟,沈阳网吧加盟费用选择嘉棋电竞_售后服务一体化 | 庭院灯_太阳能景观灯_草坪灯厂家_仿古壁灯-重庆恒投科技 | 济南保安公司加盟挂靠-亮剑国际安保服务集团总部-山东保安公司|济南保安培训学校 | 超声波_清洗机_超声波清洗机专业生产厂家-深圳市好顺超声设备有限公司 | 深圳南财多媒体有限公司介绍| 数码听觉统合训练系统-儿童感觉-早期言语评估与训练系统-北京鑫泰盛世科技发展有限公司 | 钢托盘,钢制托盘,立库钢托盘,金属托盘制造商_南京飞天金属制品实业有限公司 | 砖机托板价格|免烧砖托板|空心砖托板厂家_山东宏升砖机托板厂 | 工业废水处理|污水处理厂|废水治理设备工程技术公司-苏州瑞美迪 今日娱乐圈——影视剧集_八卦娱乐_明星八卦_最新娱乐八卦新闻 | 无痕胶_可移胶_无痕双面胶带_可移无痕胶厂家-东莞凯峰 | jrs高清nba(无插件)直播-jrs直播低调看直播-jrs直播nba-jrs直播 上海地磅秤|电子地上衡|防爆地磅_上海地磅秤厂家–越衡称重 | 除湿机|工业除湿机|抽湿器|大型地下室车间仓库吊顶防爆除湿机|抽湿烘干房|新风除湿机|调温/降温除湿机|恒温恒湿机|加湿机-杭州川田电器有限公司 | 济南ISO9000认证咨询代理公司,ISO9001认证,CMA实验室认证,ISO/TS16949认证,服务体系认证,资产管理体系认证,SC食品生产许可证- 济南创远企业管理咨询有限公司 郑州电线电缆厂家-防火|低压|低烟无卤电缆-河南明星电缆 | 铣刨料沥青破碎机-沥青再生料设备-RAP热再生混合料破碎筛分设备 -江苏锡宝重工 | 一体化污水处理设备,一体化污水设备厂家-宜兴市福源水处理设备有限公司 | 河南膏药贴牌-膏药代加工-膏药oem厂家-洛阳今世康医药科技有限公司 | 石家庄救护车出租_重症转院_跨省跨境医疗转送_活动赛事医疗保障_康复出院_放弃治疗_腾康26年医疗护送转诊团队 | 出国劳务公司_正规派遣公司[严海] | 房间温控器|LonWorks|海思| 温州中研白癜风专科_温州治疗白癜风_温州治疗白癜风医院哪家好_温州哪里治疗白癜风 | 网架支座@球铰支座@钢结构支座@成品支座厂家@万向滑动支座_桥兴工程橡胶有限公司 | 车件|铜件|车削件|车床加工|五金冲压件-PIN针,精密车件定制专业厂商【东莞品晔】 | 手机游戏_热门软件app下载_好玩的安卓游戏下载基地-吾爱下载站 | ★店家乐|服装销售管理软件|服装店收银系统|内衣店鞋店进销存软件|连锁店管理软件|收银软件手机版|会员管理系统-手机版,云版,App | 杰恒蠕动泵-蠕动泵专业厂家-19年专注蠕动泵 | 烟雾净化器-滤筒除尘器-防爆除尘器-除尘器厂家-东莞执信环保科技有限公司 | 智能化的检漏仪_气密性测试仪_流量测试仪_流阻阻力测试仪_呼吸管快速检漏仪_连接器防水测试仪_车载镜头测试仪_奥图自动化科技 | RTO换向阀_VOC高温阀门_加热炉切断阀_双偏心软密封蝶阀_煤气蝶阀_提升阀-湖北霍科德阀门有限公司 | 珠海冷却塔降噪维修_冷却塔改造报价_凉水塔风机维修厂家- 广东康明节能空调有限公司 | 上海小程序开发-小程序制作-上海小程序定制开发公司-微信商城小程序-上海咏熠 | 矿用履带式平板车|探水钻机|气动架柱式钻机|架柱式液压回转钻机|履带式钻机-启睿探水钻机厂家 | 自动钻孔机-全自动数控钻孔机生产厂家-多米(广东)智能装备有限公司 | 泵阀展|阀门展|水泵展|流体机械展 -2025上海国际泵管阀展览会flowtech china | ◆大型吹塑加工|吹塑加工|吹塑代加工|吹塑加工厂|吹塑设备|滚塑加工|滚塑代加工-莱力奇塑业有限公司 | 长沙广告公司|长沙广告制作设计|长沙led灯箱招牌制作找望城湖南锦蓝广告装饰工程有限公司 | 国际线缆连接网 - 连接器_线缆线束加工行业门户网站 | 医疗仪器模块 健康一体机 多参数监护仪 智慧医疗仪器方案定制 血氧监护 心电监护 -朗锐慧康 |