MulaiMulai sekarang secara gratis

Context manager timer()

Seorang rekan Anda sedang mengerjakan layanan web yang memproses foto Instagram. Pelanggan mengeluhkan bahwa layanan tersebut terlalu lama untuk mengidentifikasi apakah sebuah gambar memiliki kucing atau tidak, sehingga rekan Anda meminta bantuan. Anda memutuskan untuk menulis sebuah context manager yang dapat mereka gunakan untuk mengukur berapa lama fungsi mereka berjalan.

Latihan ini adalah bagian dari kursus

Menulis Function di Python

Lihat Kursus

Petunjuk latihan

  • Tambahkan dekorator dari modul contextlib ke fungsi timer() agar berperilaku sebagai context manager.
  • Alihkan kendali dari fungsi timer() ke blok konteks.

Latihan interaktif praktis

Cobalah latihan ini dengan menyelesaikan kode contoh berikut.

# 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)
Edit dan Jalankan Kode