Вера Мариненская

Добрый день! Не очень понимаю, почему не могу увеличить индекс для хранения https://ru.hexlet.io/code_reviews/269608

6 0

Aleksei Pirogov

Потому что присваивание нового значения переменной, которая не объявлена в текущей области видимости, создаёт в этой области видимости новую переменную с тем же именем. Старая переменная останется нетронутой.

Вы могли бы модифицировать некий изменяемый объект, содержащий в себе индекс - точно так же, как вы изменяете cache и memory. Но использование индекса - не единственный способ решить данную задачу.

0

Вера Мариненская

https://ru.hexlet.io/code_reviews/269608 вот так у меня получается повторить логику в примере readme, но я не понимаю почему не проходят тесты. в память записывается и удаляется при переполнении.

0

Aleksei Pirogov

Вера Мариненская, я вижу, что тесты пройдены. Может быть вы имели в виду предупреждения от линтера?

0

Aleksei Pirogov

Так. Вижу, вы в итоге сами разобрались. Ну и отлично!

По коду. Вы в обеих ветках условия делаете одни и те же действия:

                cache[args[0]] = function(*args)
                memory.append(args[0])
                return cache[args[0]] 
            else:
                cache[args[0]] = function(*args)
                memory.append(args[0])
                return cache[args[0]] 

Вынесите эти три строчки за условную конструкцию, раз они выполняются вне зависимости от истинности условия. В остальном всё хорошо.

0

Вера Мариненская

Aleksei Pirogov, смогла пройти упражнение, но несразу - было сложно :) первая проблема была с попыткой менять индекс внутри inner-a, вторая проблема была с двумя if-ами, которые вообще-то не связаны, но для программы оказались связанными.

0

Aleksei Pirogov

В подсказке к заданию я старался тонко намекнуть на то, что нужно использовать дополнительную структуру данных, целенаправленно сохраняющую порядок. Возможно, это был слишком тонкий намёк :)

0

Похожие вопросы

Ксения Андреева 4 дня назад →

А не будет удобнее в этом задание использовать OrderedDict?

poul BELOBORODOV 24 мая 2020 →

https://ru.hexlet.io/u/user-b448b86e5109f26c Доброго времени суток! Вроде бы все понятно и все работает, по...

Евгений Тулбанов 11 мая 2020 →

Здравствуйте. Подскажите, как добиться того чтобы в словарь где хранятся аргументы и результаты вызовов фун...

M P 23 февраля 2020 →

Добрый день! Планируется ли добавить тесты и упражнения по декораторам и рекурсии? Предполагаю, что эти тем...

Roman Kornveyts 24 января 2020 →

Добрый день! Похоже, что в последнем примере, где рассказывается про декоратор wrapped, ошибка. Функция inn...

Мы учим программированию с нуля до стажировки и работы. Попробуйте наш бесплатный курс «Введение в программирование» или полные программы обучения по Javascript, PHP, Python и Java.

Хекслет

Подробнее о том, почему наше обучение работает →