`timer()` 情境管理器
你的同事正在開發一個處理 Instagram 照片的網路服務。客戶抱怨服務在判斷圖片是否包含貓時花太久時間,因此同事來請你協助。你決定寫一個情境管理器,讓他們可以用來量測函式執行所需的時間。
本練習屬於課程
Python 函式寫作
練習說明
- 從
contextlib模組為timer()函式加入裝飾器,讓它能以情境管理器的方式運作。 - 從
timer()函式把控制權交給情境區塊。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
# Add a decorator that will make timer() a context manager
@contextlib.____
def timer():
"""Time the execution of a context block.
Yields:
None
"""
start = time.time()
# Send control back to the context block
____
end = time.time()
print('Elapsed: {:.2f}s'.format(end - start))
with timer():
print('This should take approximately 0.25 seconds')
time.sleep(0.25)