⚡️ Кэшируем значения метода



Разберём для этого модуль functools — он предоставляет декораторы cache и cached_property для сохранения данных и их будущего использования, что может может быть очень полезно при работе с рекурсией.



К примеру, вызов factorial(10), который вы видите на картинке выше. В первом вызове создаётся словарик типа «Входные данные : Возвращаемое значение» и заполняется результатами работы программы.



А вот factorial(5) уже не потребует никаких расчётов, поскольку значения кэшировались, что довольно хорошо сказалось на производительности.



@ cache используется для функций, а вот @ cached_property для свойств (это тоже самое, что и @ cache @ property).