Задача: напишите декоратор, который кэширует результат функции на определённое время (ttl). TTL задаётся в секундах (int).
1) опишите основную схему этого кода со всеми возможными крайними случаями.
2) (по желанию) реализуйте в коде
import time
# реализация
pass
# print(f"Func in cache: {}")
# print(f"Time is valid: {}")
@ttl_cache(ttl=1)
def multiplier(a, b, **kwargs):
return a * b
print(f'now={time.time()}')
print(f'result={multiplier(5, 5, x=1)}; time={time.time()}')
print(f'result={multiplier(5, 5, x=1)}; time={time.time()}')
print(f'result={multiplier(2, 5, x=1)}; time={time.time()}')
time.sleep(2)
print(f'result={multiplier(5, 5, x=1)}; time={time.time()}')