170 похожих чатов

Коллеги, Добрый день! Столкнулся с неочевидным поведением программы. Использую tkinker, чтобы

сделать простецкий калькулятор.

Накидываю в окошко кнопки циклом (пик 1).
И потом добавляю им команды. Проблема в том, что если делать это втупую (пик 2), то все работает. Если добавлять в цикле (пик 3, почему-то прикрепился ниже) отдельным циклом или в том же цикле, не важно, каждая кнопка вызывает метод clicked и передаёт в него не себя а последнюю кнопку. Вернее кнопку под номером i, то есть если после цикла я изменю i на 3, то все будут передавать третью кнопку.

Я так понимаю, это то как работают лямбды, то работают не со значениями а с переменными.

Но я это кардинально не понимаю, ведь int - неизменяемый тип данных и в момент i += 1 фактически создаётся новая переменная, на сколько я понимаю. А старая теряется, пока ее не сожрёт сборщик мусора.

Может кто-нибудь внятно объяснить что происходит и как поправить код, чтобы работало?

6 ответов

18 просмотров
Владимир 🤍💙🤍- Автор вопроса

Актуально

У тебя в переменной не изменяется значение инта, а изменяется ссылка на объект инта

Владимир 🤍💙🤍- Автор вопроса
Drak Lowell
У тебя в переменной не изменяется значение инта, а...

Я в лямбду передаю что - ссылку или значение?

Владимир 🤍💙🤍- Автор вопроса

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

Обсуждают сегодня

Типа вызывать GetParent и проверять на соответствие GetModuleHandle?
The Bird of Hermes
67
Do any of you guys have interesting projects one could join? I'm a Middle Full-Stack developer (JS/TS, React & Node)
Lev Shapiro
40
$res = json_decode($наша строка из респонса); $res1 = array_map(fn($o) => $o->name, $res->breadcrumbs[0]->entities); Как такое будет на Хаскеле?.. В начале весь джейсон, в ко...
Хаскель Моисеевич Гопник
27
В чем сила брат, в NASM или FASM?
Isaac Kleiner
18
Вопрос по диагностике ошибок (я знаю в чем, в данном конкретном примере, я знаю, как исправить, пример модельный, понятно, что в реальности бывает намного запутаннее). module...
ⰄⰎⰋⰐⰐⰑⰛⰤⰧⰧⰩⰄ ⰊⰑⰁⰓⰡⰛⰦⰕⰫ
11
А чем вам питонисты не угодили?😂
.
79
Хтось використовував Vapor на Windows?
Jaroshevskii
15
Есть какой-нибудь для Delphi/FPC T*Compression(Decompression)Stream на базе LZ4/Zstd/любой другой быстрый(и хорошо сжимающий) алгоритм А ещё лучше в pure pascal А ещё лучше од...
notme
52
Тут кста кто-нибудь NeoVim использует?
Simple Sorcerer
13
Какое виндузовое сообщение приходит TTabSheet, что риэлайняться контролы на нем, даже у которых парент другой? Ситуация: открываю форму - кнопок нет, перелистываю на другой т...
Катерина Свиридова
5
Карта сайта