import functools
@functools.lru_cache()
def fib(n):
if n < 2:
return n
else:
return fib(n-1) + fib(n-2)
Falls maxsize auf None gesetzt wird, werden die LRU-Eigenschaften disabled und der Cache kann ungebunden wachsen. Falls typed True ist, werden Argumente von verschiedenem Type separat gecashed. So werden dann z.B. f(3.0) und f(3) als verschiedene Aufrufe betrachtet.
Die Argumente der gecashten Funktion müssen hash-bar sein. Mit f.cache_info() lässt sich die Cache-Statistik (hits, misses, maxsize, currsize) anzeigen.
f.cache_clear() löscht den Cache und die Statistik.
Die zugrundeliegende Funktion kann man mit f.__wrapped__ ansprechen.