Python Glossary English

все Python 3functoolsпонятие

functools

модуль

Функции высшего порядка: кэширование результатов, частичное применение, свёртка, обёртки декораторов и перегрузка по типу.

Синтаксис

from functools import lru_cache, partial

functools — набор инструментов над функциями: lru_cache и cache запоминают результаты, partial фиксирует часть аргументов, wraps сохраняет имя и docstring у декорированной функции. Готовые итераторы лежат рядом, в itertools. Кэш хранит аргументы как ключи словаря, поэтому они обязаны быть хешируемыми: список в аргументе даёт TypeError.

Примеры

from functools import lru_cache, reduce
@lru_cache(maxsize=None)
def fib(n):
    return n if n < 2 else fib(n - 1) + fib(n - 2)
print(fib(80))  # → 23416728348467685
print(reduce(lambda a, b: a * b, [1, 2, 3, 4]))  # → 24

См. также

Открыть в полном глоссарииdocs.python.orgСообщить о неточности