Вступить в клуб →
лёгкаявопросРекурсия и динамическое программирование

lru_cache над функцией, которой передают список

from functools import lru_cache


@lru_cache(maxsize=None)
def total(items):
    return sum(items)


print(total([1, 2, 3]))

Что произойдёт при запуске?

  • Напечатается 6, а при повторном вызове с тем же списком сработает кэш и тело не выполнится
  • Поднимется TypeError: список нехешируем, а ключ кэша строится из аргументов
  • Напечатается 6, но кэш будет промахиваться при каждом вызове: списки сравниваются по значению
  • Напечатается 6: lru_cache сам приводит изменяемые аргументы к кортежам перед сохранением

🔒 Проверка ответа — для участников клуба

  • Проверка ответа
  • Подсказка, если застряли
  • Разбор с объяснением, почему так
  • Прогресс по всем задачам и виртуальные собеседования
Зарегистрироваться →

Регистрация занимает минуту

Другие задачи раздела