開始使用免費開始

`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)
編輯並執行程式碼