Я пишу программу, которая вычисляет мои оценки, но я застрял на небольшой проблеме, которую не могу исправить.Я использую цикл for, чтобы добавить в список несколько кнопок, каждая из которых следует одному и тому же методу при нажатии, но имеет разные параметры.Передаваемый параметр - это x, который является параметром экземпляров цикла for.Почему x используется правильно при выборе текста кнопки, но неправильно при выборе параметра для функции?
Когда я запускаю код ниже, кнопки распечатываются в правильном порядке с правымтекст, таким образом, x зацикливается и дает различные параметры 'text' (course [x] .shortname) для каждой кнопки.Однако, когда я распечатывал параметр метода 'gradesCourseSelectionButtonsMethod' во время его запуска, использовался тот же параметр (номер 4), вместо 0 для первой кнопки, 1 для второй и т. Д. 4 - этодлина списка.Так что он всегда работает так, как будто я нажимаю последнюю кнопку.
for x in range(0,len(course)):
gradesCourseSelectionButttons.append(Button(
cls. gradesCourseSelectionWindow,text= course[x].shortName,
relief='solid',
command=lambda:Course.gradesCourseSelectionButtonsMethod(x)))
Я хочу, чтобы x был зацикливался как в текстовом параметре, так и в параметре команды, а не просто проходил через текстовый параметр.