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