Это способ передать индекс итерации как постоянное целое число в Python?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Это способ передать индекс итерации как постоянное целое число в Python?

Сообщение Anonymous »

Я пытаюсь перебрать диапазон, создавая новый виджет кнопки tkinter для каждого числа в диапазоне, что приводит к формированию клавиатуры. Каждая кнопка должна отправлять в список разные целые числа при нажатии, но передача i в нее приводит к тому, что она ссылается на окончательное значение i (после итерации по созданию кнопок), в результате чего каждая кнопка возвращает 8.
Мне нужно каждой кнопке, чтобы вернуть индекс, который был там при создании кнопки.

Код: Выделить всё

    for i in range(9):
gem_button = Button(key_pad, image= images[i], command= lambda: add_gem(i, player_moves, moves.selected), width= 32, height= 32)
gem_button.grid(row= 4 + (i % 3), column= i // 3)
Вместо этого я попробовал передать индекс списка, но это совершенно не изменило результат.

Код: Выделить всё

button_range = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
...
gem_button = Button(key_pad, image= images[i], command= lambda: **add_gem(button_range[i]**, player_moves,
Это меня смущает, потому что в той же строке кода я передаю i как индекс изображения кнопки, и изображения отображают правильный индекс изображения.

Подробнее здесь: https://stackoverflow.com/questions/789 ... -in-python
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»