Python RU
Фотография
нажмите — покажем
нажмите — покажем
🚀🧠**lru_cache**: отличная техника для эффективного кодинга!🚀🧠
В данном коде `lru_cache` используется в качестве декоратора для функции fibonacci. Поскольку последовательность Фибоначчи может быть вычислительно затратной для больших входных данных, кэширование результатов для каждого вызова может значительно ускорить последующие вызовы с теми же аргументами.
Однако декоратор кэширования не следует использовать в каждом конкретном случае. Для функций, результаты которых меняются даже при одинаковых входных данных, или для функций, выходными данными которых являются изменяемые объекты, кэширования следует избегать.
При первом вызове `fibonacci(35)` функция вычислит результат обычным способом, учитывая рекурсивный характер последовательности Фибоначчи. Это может занять много времени.
Однако при втором вызове `fibonacci(35)` вместо повторного вычисления функция просто найдет значение в кэше и вернет его. В результате время выполнения второго вызова будет значительно меньше, что свидетельствует о пользе кэширования.
Фактическое время выполнения на вашей машине будет зависеть от ее вычислительной мощности, но, скорее всего, вы увидите заметную разницу между двумя вызовами.
Помните, что lru_cache может ускорить только последующие вызовы с теми же параметрами. Если вызвать fibonacci(36) после fibonacci(35), то все равно придется вычислять значение. Однако вычисление будет происходить быстрее, чем без кэша, так как fibonacci(35) уже закешировано, и ему нужно только добавить к нему fibonacci(34).
@pro_python_code
👍7👎1❤1🔥1
20 · 2.9K ·