Αποστολή: γράψτε έναν διακοσμητή που αποθηκεύει στη μνήμη cache το αποτέλεσμα μιας λειτουργίας για μια συγκεκριμένη χρονική περίοδο (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()}')