Managerul de context timer()
Un coleg de-al tău lucrează la un serviciu web care procesează fotografii de pe Instagram. Clienții se plâng că serviciul durează prea mult să determine dacă o imagine conține sau nu o pisică, așa că el a apelat la tine pentru ajutor. Decizi să scrii un manager de context pe care îl poate folosi pentru a măsura cât timp rulează funcțiile sale.
Acest exercițiu face parte din cursul
Scrierea funcțiilor în Python
Instrucțiuni pentru exercițiu
- Adaugă un decorator din modulul
contextlibla funcțiatimer(), astfel încât aceasta să se comporte ca un manager de context. - Transferă controlul din funcția
timer()către blocul de context.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# 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)