functools Module
PY · Common Standard Librarysyntax
from functools import lru_cache, partial, reduceexample
from functools import lru_cache, partial
@lru_cache(maxsize=128)
def fibonacci(n: int) -> int:
if n < 2:
return n
return fibonacci(n - 1) + fibonacci(n - 2)
print(fibonacci(30))
print(fibonacci.cache_info())
# partial: pre-fill arguments
def power(base, exp):
return base ** exp
square = partial(power, exp=2)
print(square(7))output
832040
CacheInfo(hits=28, misses=31, maxsize=128, currsize=31)
49Note lru_cache requires hashable arguments. For unhashable args, consider cachetools or a manual cache. partial is great for adapting callback signatures.