Memoization
functools
import functools
@lru_cache(maxsize=4)
def expensive_function(n):
print(f"Calculating {n}...")
return n * n
# Use cache
# @functools.cache
print(expensive_function.cache_info())
# Output: CacheInfo(hits=0, misses=5, maxsize=3, currsize=3)
# Clear the cache
expensive_function.cache_clear()
# Cache info after clearing
print(expensive_function.cache_info())
# Output: CacheInfo(hits=0, misses=0, maxsize=3, currsize=0)