
⚡️ Кэшируем значения метода
Разберём для этого модуль functools — он предоставляет декораторы cache и cached_property для сохранения данных и их будущего использования, что может может быть очень полезно при работе с рекурсией.
К примеру, вызов factorial(10), который вы видите на картинке выше. В первом вызове создаётся словарик типа «Входные данные : Возвращаемое значение» и заполняется результатами работы программы.
А вот factorial(5) уже не потребует никаких расчётов, поскольку значения кэшировались, что довольно хорошо сказалось на производительности.
@ cache используется для функций, а вот @ cached_property для свойств (это тоже самое, что и @ cache @ property).
Разберём для этого модуль functools — он предоставляет декораторы cache и cached_property для сохранения данных и их будущего использования, что может может быть очень полезно при работе с рекурсией.
К примеру, вызов factorial(10), который вы видите на картинке выше. В первом вызове создаётся словарик типа «Входные данные : Возвращаемое значение» и заполняется результатами работы программы.
А вот factorial(5) уже не потребует никаких расчётов, поскольку значения кэшировались, что довольно хорошо сказалось на производительности.
@ cache используется для функций, а вот @ cached_property для свойств (это тоже самое, что и @ cache @ property).