Python 使用with上下文實(shí)現(xiàn)計(jì)時(shí)功能
引言
with 語句是從 Python 2.5 開始引入的一種與異常處理相關(guān)的功能(2.5 版本中要通過 from __future__ import with_statement 導(dǎo)入后才可以使用),從 2.6 版本開始缺省可用(參考 ? 中 with 語句相關(guān)部分介紹)。with 語句適用于對(duì)資源進(jìn)行訪問的場(chǎng)合,確保不管使用過程中是否發(fā)生異常都會(huì)執(zhí)行必要的“清理”操作,釋放資源,比如文件使用后自動(dòng)關(guān)閉、線程中鎖的自動(dòng)獲取和釋放等。
在Python常常需要記錄一段代碼運(yùn)行了多長(zhǎng)時(shí)間,普通的一般用兩個(gè) time.time() ,然后計(jì)算差值;高級(jí)一點(diǎn)的,就是寫一個(gè)計(jì)時(shí)裝飾器,用裝飾器包裹方法,記錄運(yùn)行時(shí)間,但這這意味著你的代碼需要寫在函數(shù)里,然后才能使用此計(jì)時(shí)裝飾器。
今天我要介紹的是一種可以給一段代碼計(jì)時(shí),而不是一個(gè)函數(shù)計(jì)時(shí)的方便的、“高級(jí)的”的Python計(jì)時(shí)方法。
代碼如下:
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 來修改時(shí)間精度。
總結(jié)
以上所述是小編給大家介紹的Python 使用with上下文實(shí)現(xiàn)計(jì)時(shí)功能,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
- 深入解析Python中的上下文管理器
- Python深入學(xué)習(xí)之上下文管理器
- Python標(biāo)準(zhǔn)模塊--ContextManager上下文管理器的具體用法
- Python中的with語句與上下文管理器學(xué)習(xí)總結(jié)
- 正確理解python中的關(guān)鍵字“with”與上下文管理器
- Python with語句上下文管理器兩種實(shí)現(xiàn)方法分析
- 深入學(xué)習(xí)Python中的上下文管理器與else塊
- Python with關(guān)鍵字,上下文管理器,@contextmanager文件操作示例
- 詳解Python中contextlib上下文管理模塊的用法
- Python中的上下文管理器和with語句的使用
- Python上下文管理器類和上下文管理器裝飾器contextmanager用法實(shí)例分析
相關(guān)文章
Python二次規(guī)劃和線性規(guī)劃使用實(shí)例
這篇文章主要介紹了Python二次規(guī)劃和線性規(guī)劃使用實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-12-12
Python?OpenCV實(shí)現(xiàn)簡(jiǎn)單的顏色識(shí)別功能(對(duì)紅色和藍(lán)色識(shí)別并輸出)
Python?OpenCV可以用來進(jìn)行顏色識(shí)別,可以通過讀取圖像的像素值,來判斷像素點(diǎn)的顏色,從而實(shí)現(xiàn)顏色識(shí)別,這篇文章主要給大家介紹了關(guān)于Python?OpenCV實(shí)現(xiàn)簡(jiǎn)單的顏色識(shí)別功能(對(duì)紅色和藍(lán)色識(shí)別并輸出)的相關(guān)資料,需要的朋友可以參考下2023-12-12
yolov5中anchors設(shè)置實(shí)例詳解
在YOLOV5算法之中,針對(duì)不同的數(shù)據(jù)集,一般會(huì)預(yù)先設(shè)置固定的Anchor,下面這篇文章主要給大家介紹了關(guān)于yolov5中anchors設(shè)置的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-06-06
Pytest?fixture及conftest相關(guān)詳解
這篇文章主要介紹了Pytest?fixture及conftest相關(guān)詳解,fixture是在測(cè)試函數(shù)運(yùn)行前后,由pytest執(zhí)行的外殼函數(shù),更多相關(guān)內(nèi)容需要的朋友可以參考一下2022-09-09
淺析關(guān)于Keras的安裝(pycharm)和初步理解
Keras 是一個(gè)用 Python 編寫的高級(jí)神經(jīng)網(wǎng)絡(luò) API,它能夠以 TensorFlow, CNTK, 或者 Theano 作為后端運(yùn)行。這篇文章給大家介紹Keras的安裝(pycharm)和初步理解,感興趣的朋友一起看看吧2020-10-10

