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
Anleitung zur Übung
- Füge der Funktion
timer()
einen Dekorator aus dem Modulcontextlib
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)