Python 3.9+functoolsфункция
functools.cache
functools
Декоратор: простой неограниченный кеш (как lru_cache(maxsize=None)), добавлен в Python 3.9.
Синтаксис
@functools.cache
cache ничего не вытесняет: словарь растёт, пока жива функция, поэтому на данных от пользователя он рискованнее lru_cache с ограничением — а на методах кеш ещё и держит ссылку на self, и объект не умирает. Взамен он чуть быстрее lru_cache: не нужно отслеживать порядок обращений и вытеснять старое. Аргументы обязаны быть хешируемыми, список или словарь дадут TypeError.
Примеры
import functools
@functools.cache
def f(n):
return n + 1
print(f(10), f(10)) # → 11 11
См. также
Частые ошибки
Открыть в полном глоссарииdocs.python.orgСообщить о неточности