Python 使用with上下文實現計時功能
引言
with 語句是從 Python 2.5 開始引入的一種與異常處理相關的功能(2.5 版本中要通過 from __future__ import with_statement 導入后才可以使用),從 2.6 版本開始缺省可用(參考 ? 中 with 語句相關部分介紹)。with 語句適用于對資源進行訪問的場合,確保不管使用過程中是否發(fā)生異常都會執(zhí)行必要的“清理”操作,釋放資源,比如文件使用后自動關閉、線程中鎖的自動獲取和釋放等。
在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深入學習之上下文管理器
- Python標準模塊--ContextManager上下文管理器的具體用法
- Python中的with語句與上下文管理器學習總結
- 正確理解python中的關鍵字“with”與上下文管理器
- Python with語句上下文管理器兩種實現方法分析
- 深入學習Python中的上下文管理器與else塊
- Python with關鍵字,上下文管理器,@contextmanager文件操作示例
- 詳解Python中contextlib上下文管理模塊的用法
- Python中的上下文管理器和with語句的使用
- Python上下文管理器類和上下文管理器裝飾器contextmanager用法實例分析
相關文章
python3之模塊psutil系統(tǒng)性能信息使用
psutil是個跨平臺庫,能夠輕松實現獲取系統(tǒng)運行的進程和系統(tǒng)利用率,這篇文章主要介紹了python3之模塊psutil系統(tǒng)性能信息使用,感興趣的小伙伴們可以參考一下2018-05-05python開發(fā)之tkinter實現圖形隨鼠標移動的方法
這篇文章主要介紹了python開發(fā)之tkinter實現圖形隨鼠標移動的方法,涉及Python基于tkinter繪圖的相關實現技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-11-11Python ORM框架SQLAlchemy學習筆記之關系映射實例
這篇文章主要介紹了Python ORM框架SQLAlchemy學習筆記之關系映射實例,Classic (經典模式)和Modern (現代模式),分別介紹了,需要的朋友可以參考下2014-06-06使用tensorflow根據輸入更改tensor shape
這篇文章主要介紹了使用tensorflow根據輸入更改tensor shape,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-06-06CentOS 7下安裝Python 3.5并與Python2.7兼容并存詳解
這篇文章主要給大家介紹了在CentOS 7下安裝Python 3.5并與Python2.7兼容并存的相關資料,文中將安裝步驟介紹的非常詳細,對大家具有一定的參考學習價值,需要的朋友們下面跟著小編來一起學習學習吧。2017-07-07python中時間轉換datetime和pd.to_datetime詳析
這篇文章主要給大家介紹了關于python中時間轉換datetime和pd.to_datetime的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用python具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧2019-08-08matplotlib交互式數據光標mpldatacursor的實現
這篇文章主要介紹了matplotlib交互式數據光標mpldatacursor的實現 ,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-02-02