Работал ли с библитекой functools
Python
Middle
Без компании
Работал ли с библитекой functools
Ответы
Да, работал. `functools` — полезный модуль из стандартной библиотеки Python, предоставляющий функции для работы с другими функциями.
**Основные инструменты:**
- `lru_cache`: декоратор для мемоизации (кэширования результатов функции).
- `partial`: создаёт новую функцию с частично применёнными аргументами.
- `wraps`: сохраняет метаданные оригинальной функции при использовании декораторов.
- `reduce`: применяет функцию к элементам последовательности, сводя её к единственному значению (аналог `reduce` из Python 2).
**Пример с `lru_cache`:**
```
from functools import lru_cache
@lru_cache(maxsize=128)
def fibonacci(n):
if n < 2:
return n
return fibonacci(n-1) + fibonacci(n-2)
print(fibonacci(30)) # Результат кэшируется, ускоряя повторные вызовы
```
**Пример с `partial`:**
```
from functools import partial
def multiply(x, y):
return x * y
double = partial(multiply, y=2) # Фиксируем y=2
print(double(5)) # 10
```
Использовал `functools` для оптимизации, упрощения кода и работы с декораторами.