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