# functools

**functools** - Функции высшего порядка и операции с вызываемыми объектами.

Модуль **functools** предназначен для функций высшего порядка: функций, которые действуют или возвращают другие функции. В общем, любой вызываемый объект можно рассматривать как функцию для целей этого модуля.

Модуль **functools** определяет следующие функции:

* &#x20;[@functools.cache()](https://treasuremaster.gitbook.io/python-docs/moduli-standartnoi-biblioteki-1/funkcionalnye-programmnye-moduli/functools/functools.cache) - кеширует функции
* &#x20;[@functools.cached\_property()](https://treasuremaster.gitbook.io/python-docs/moduli-standartnoi-biblioteki-1/funkcionalnye-programmnye-moduli/functools/functools.cached_property) - преобразует метод класса в кешированное свойство
* &#x20;[functools.cmp\_to\_key()](https://treasuremaster.gitbook.io/python-docs/moduli-standartnoi-biblioteki-1/funkcionalnye-programmnye-moduli/functools/functools.cmp_to_key) - преобразует функцию сравнения старого стиля в ключевую функцию
* &#x20;[@functools.lru\_cache()](https://treasuremaster.gitbook.io/python-docs/moduli-standartnoi-biblioteki-1/funkcionalnye-programmnye-moduli/functools/functools.lru_cache) - декоратор для обертывания функции мемоизирущим объектом
* &#x20;[@functools.total\_ordering](https://treasuremaster.gitbook.io/python-docs/moduli-standartnoi-biblioteki-1/funkcionalnye-programmnye-moduli/functools/functools.total_ordering) - дополняет методы упорядочивания (больше, меньше, равно и т.п.)
* &#x20;[functools.partial()](https://treasuremaster.gitbook.io/python-docs/moduli-standartnoi-biblioteki-1/funkcionalnye-programmnye-moduli/functools/functools.partial) - возвращает объект partial, похожий на функцию с доп. аргументами.
* &#x20;[*class* functools.partialmethod()](https://treasuremaster.gitbook.io/python-docs/moduli-standartnoi-biblioteki-1/funkcionalnye-programmnye-moduli/functools/functools.partialmethod) - то же, что и **partial**, но для методов классов
* &#x20;functools.reduce()
* &#x20;@functools.singledispatch
* &#x20;*class* functools.singledispatchmethod()
* &#x20;[functools.update\_wrapper()](https://treasuremaster.gitbook.io/python-docs/moduli-standartnoi-biblioteki-1/funkcionalnye-programmnye-moduli/functools/functools.update_wrapper) - обновляет обернутую функцию до оборачиваемой
* &#x20;[@functools.wraps()](https://treasuremaster.gitbook.io/python-docs/moduli-standartnoi-biblioteki-1/funkcionalnye-programmnye-moduli/functools/functools.wraps) - удобная функция вызова [update\_wrapper()](https://treasuremaster.gitbook.io/python-docs/moduli-standartnoi-biblioteki-1/funkcionalnye-programmnye-moduli/functools/functools.update_wrapper), декоратор

Объекты partial

* partial.func
* partial.args
* partial.keywords
