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
<Kurs>Funktionen in Python schreiben</Kurs>Übungsanweisungen
- 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 praktische Übung
Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.
# 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)