LoslegenKostenlos loslegen

Der Context Manager timer()

Eine Kollegin von dir arbeitet an einem Webservice, der Instagram-Fotos verarbeitet. Kundinnen und Kunden beschweren sich, dass der Dienst zu lange braucht, um festzustellen, ob ein Bild eine Katze enthält oder nicht. Deine Kollegin bittet dich um Hilfe. Du beschließt, einen Context Manager zu schreiben, mit dem sie messen kann, wie lange ihre Funktionen für die Ausführung benötigen.

Diese Übung ist Teil des Kurses

Funktionen in Python schreiben

Kurs anzeigen

Anleitung zur Übung

  • Füge der Funktion timer() einen Decorator aus dem Modul contextlib hinzu, damit sie sich wie ein Context Manager verhält.
  • Übergib die Kontrolle aus 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