LoslegenKostenlos loslegen

Der timer()-Kontextmanager

Ein Kollege von dir arbeitet an einem Webservice, der Instagram-Fotos verarbeitet. Die Kunden beschweren sich, dass der Dienst zu lange braucht, um zu erkennen, ob ein Bild eine Katze enthält oder nicht, also hat dein Kollege dich um Hilfe gebeten. Du beschließt, einen Kontextmanager zu schreiben, mit dem sie die Zeit für die Ausführung ihrer Funktionen messen können.

Diese Übung ist Teil des Kurses

Funktionen in Python schreiben

Kurs anzeigen

Anleitung zur Übung

  • Füge der Funktion timer() einen Dekorator aus dem Modul contextlib hinzu, damit sie sich wie ein Kontextmanager verhält.
  • Sende die Kontrolle von der Funktion timer() an den Kontextblock.

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

# 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)
Code bearbeiten und ausführen