from functools import lru_cache
from time import sleep
from timeit import timeit
@lru_cache(maxsize=None)
def some_function(some_value):
sleep(1)
return some_value * 2
def do_range():
for j in range(0, 10):
ret = some_function(j)
print("Round 1 (Nothing Memoized):", timeit("do_range()", setup="from __main__ import do_range"))
print("Round 2 (Memoized):", timeit("do_range()", setup="from __main__ import do_range"))