Pythoner
Фотография
✈️Когда ваша функция часто вызывается с одинаковыми параметрами, можно значительно повысить её производительность с помощью кэширования. В Python для этого есть удобный декоратор functools.lru_cache(), который запоминает результаты вызовов и при повторных обращениях с теми же аргументами просто возвращает сохранённый результат, не выполняя вычисления заново.
➡️Пример использования:
from functools import lru_cache
@lru_cache(maxsize=128) # Ограничиваем объем кэша
def factorial(n):
if n == 0:
return 1
return n * factorial(n - 1)
print(factorial(50)) # Результат будет кэширован
💡Как работает?
- При первом вызове функции с определёнными аргументами результат сохраняется в кэше.
- При последующих вызовах с теми же аргументами результат берётся из кэша без повторных вычислений.
- Когда кэш заполняется, старые записи удаляются согласно принципу LRU (Least Recently Used — наименее часто используемые).
🐍 Pythoner
18 · 1.6K ·