始める無料で始める

timer() コンテキストマネージャ

あなたの同僚は、Instagram の写真を処理する Web サービスに取り組んでいます。画像に猫が写っているかどうかの判定に時間がかかりすぎると顧客から不満が出ており、同僚があなたに助けを求めてきました。あなたは、関数の実行時間を計測できるように、同僚が使えるコンテキストマネージャを書いてみることにしました。

この演習はコースの一部です

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)
コードを編集して実行