1. El módulo de funciones
import functools
@functools.lru_cache(None)
#Ejemplo oficial
@cache
def factorial(n):
return n * factorial(n-1) if n else 1
>>> factorial(10) # no previously cached result, makes 11 recursive calls
3628800
>>> factorial(5) # just looks up cached value result
120
>>> factorial(12) # makes two new recursive calls, the other 10 are cached
479001600
Su función es para ser utilizada como caché, lo que puede ahorrar los resultados de la función que consumen relativamente mucho tiempo, evitando cálculos repetidos pasando los mismos parámetros, y la caché no crecerá indefinidamente y la caché no utilizada se liberará.
Cuando maxsize se establece en None, la función LRU está deshabilitada y la caché puede crecer indefinidamente.