Kom igångKom igång gratis

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

Visa kurs

Övningsinstruktioner

  • Lägg till en dekoratör från modulen contextlib till funktionen timer() 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)
Redigera och kör kod