De contextmanager timer()
Een collega van je werkt aan een webservice die Instagram-foto's verwerkt. Klanten klagen dat de service te lang nodig heeft om te bepalen of er wel of niet een kat op een afbeelding staat, dus je collega vraagt jou om hulp. Jij besluit een contextmanager te schrijven die ze kunnen gebruiken om te meten hoelang hun functies erover doen om te draaien.
Deze oefening maakt deel uit van de cursus
Functies schrijven in Python
Oefeninstructies
- Voeg een decorator uit de module
contextlibtoe aan de functietimer()zodat die zich gedraagt als een contextmanager. - Geef vanuit de functie
timer()de controle door aan het contextblok.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# 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)