Кэширование может сэкономить время, когда связанная с вводом или выводом функция периодически вызывается с одинаковыми аргументами. До Python 3.2 мы должны были написать собственную реализацию. В Python 3.2+ есть декоратор
lru_cache, который позволяет нам быстро кэшировать и вскрывать возвращаемые значения функции.Давайте реализуем калькулятор чисел Фибоначчи с использованием кэша.
from functools import lru_cache@lru_cache(maxsize=32)def fib(n): if n < 2: return n return fib(n - 1) + fib(n - 2)>>> print([fib(n) for n in range(10)])# Output: [0, 1, 1, 2, 3, 5, 8, 13, 21, 34]Советую попробовать запустить любую рекурсивную функцию с кэшированием и без него, прирост в скорости замечается сразу.