Kontexthanteraren timer()
En kollega jobbar på en webbtjänst som bearbetar Instagram-foton. Kunderna klagar på att tjänsten tar för lång tid på sig att avgöra om en bild innehåller en katt eller inte, och din kollega har kommit till dig för hjälp. Du bestämmer dig för att skriva en kontexthanterare som kan användas för att mäta hur lång tid deras funktioner tar att köra.
Den här övningen är en del av kursen
Att skriva funktioner i Python
Övningsinstruktioner
- Lägg till en dekoratör från modulen
contextlibtill funktionentimer()så att den fungerar som en kontexthanterare. - Skicka kontrollen från funktionen
timer()till kontextblocket.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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)