Menedżer kontekstu timer()
Twój kolega pracuje nad serwisem internetowym przetwarzającym zdjęcia z Instagrama. Klienci skarżą się, że serwis zbyt długo analizuje, czy na zdjęciu jest kot – dlatego kolega zwrócił się do ciebie o pomoc. Postanawiasz napisać menedżer kontekstu, którego będzie mógł używać do mierzenia czasu wykonywania swoich funkcji.
To ćwiczenie jest częścią kursu
Pisanie funkcji w Pythonie
Instrukcje do ćwiczenia
- Dodaj dekorator z modułu
contextlibdo funkcjitimer(), który sprawi, że będzie ona działać jak menedżer kontekstu. - Przekaż sterowanie z funkcji
timer()do bloku kontekstu.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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)