LRU - Least recently used cache
- Here we called (1, 2) after (1, 4) when it was still in the cache
- When we called (1, 5) it removed the LRU pair, but it was NOT the (1, 2) pair
- So it was in the cache even after the (1, 5) call.
examples/decorators/lru_cache_example_2.py
import functools @functools.lru_cache(maxsize=3) def compute(x, y): print(f"Called with {x} and {y}") # some long computation here return x+y compute(1, 2) # Called with 1 and 2 compute(1, 2) compute(1, 2) compute(1, 3) # Called with 1 and 3 compute(1, 3) compute(1, 4) # Called with 1 and 4 compute(1, 4) compute(1, 2) compute(1, 5) # Called with 1 and 5 compute(1, 2)