Context manager timer()
Tvůj kolega pracuje na webové službě, která zpracovává fotografie z Instagramu. Zákazníci si stěžují, že služba příliš dlouho zjišťuje, jestli je na snímku kočka. Kolega tě požádal o pomoc, a tak se rozhodneš napsat context manager, který mu umožní měřit, jak dlouho jednotlivé funkce běží.
Toto cvičení je součástí kurzu
Writing Functions in Python
Pokyny k cvičení
- Přidej k funkci
timer()dekorátor z modulucontextlib, který z ní udělá context manager. - Předej řízení z funkce
timer()do bloku kontextu.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# 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)