Python Glossary English

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Сообщить о неточности