IniziaInizia gratis

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

Visualizza il corso

Istruzioni dell'esercizio

  • Aggiungi un decorator dal modulo contextlib alla funzione timer() 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)
Modifica ed esegui il codice