Zacznij terazZacznij za darmo

Menedżer kontekstu timer()

Twój kolega pracuje nad serwisem internetowym przetwarzającym zdjęcia z Instagrama. Klienci skarżą się, że serwis zbyt długo analizuje, czy na zdjęciu jest kot – dlatego kolega zwrócił się do ciebie o pomoc. Postanawiasz napisać menedżer kontekstu, którego będzie mógł używać do mierzenia czasu wykonywania swoich funkcji.

To ćwiczenie jest częścią kursu

Pisanie funkcji w Pythonie

Zobacz kurs

Instrukcje do ćwiczenia

  • Dodaj dekorator z modułu contextlib do funkcji timer(), który sprawi, że będzie ona działać jak menedżer kontekstu.
  • Przekaż sterowanie z funkcji timer() do bloku kontekstu.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# 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)
Edytuj i uruchom kod