Il context manager timer()
Un tuo collega sta lavorando a un servizio web che elabora foto di Instagram. I clienti si lamentano perché il servizio impiega troppo tempo per capire se in un’immagine c’è un gatto oppure no, quindi il tuo collega si è rivolto a te per un aiuto. Decidi di scrivere un context manager che possano usare per misurare quanto tempo impiegano le loro funzioni a eseguire.
Questo esercizio fa parte del corso
Scrivere funzioni in Python
Istruzioni dell'esercizio
- Aggiungi un decorator dal modulo
contextliballa funzionetimer()per farla comportare come un context manager. - Passa il controllo dalla funzione
timer()al blocco di contesto.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# 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)