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