Как передавать в функцию одно из промежуточных значений динамической переменной, а не ее последнее значение
Пишу приложение, которое должно позволять изменять отдельно каждую из строк таблицы. 
def _update_timetable_table(self):
self.cursor.execute("SELECT * FROM timetable ORDER BY id;")
records = list(self.cursor.fetchall())
print(records)
self.timetable_table.setRowCount(len(records) + 1)
joinButton = {}
for i, r in enumerate(records):
r = list(r)
joinButton[i]=QPushButton("Join")
self.timetable_table.setItem(i, 0,
QTableWidgetItem(str(r[0])))
self.timetable_table.setItem(i, 1,
QTableWidgetItem(str(r[1])))
self.timetable_table.setItem(i, 2,
QTableWidgetItem(str(r[2])))
self.timetable_table.setItem(i, 3,
QTableWidgetItem(str(r[3])))
self.timetable_table.setItem(i, 4,
QTableWidgetItem(str(r[4])))
self.timetable_table.setItem(i, 5,
QTableWidgetItem(str(r[5])))
self.timetable_table.setItem(i, 6,
QTableWidgetItem(str(r[6])))
self.timetable_table.setCellWidget(i, 7, joinButton[i])
joinButton[i].clicked.connect(lambda: self._change_record_from_table(i))
self.timetable_table.resizeRowsToContents()
Функция _change_record_from_table(i) должна сохранять изменения i-той строчки таблицы. По итогу нажимая любую из кнопок join в i передается не номер определенной строчки, на которой находится нажатая кнопка, а номер последней строчки. Как это исправить? Сама функция _change_record_from_table() работает исправно, так как последнюю строчку таблицы я изменить могу
Ответы (1 шт):
Автор решения: ganz
→ Ссылка
Ничего не понял из кода, но нужно давать внятные имена переменным то есть не
for i in range(10):
Button(text=str(i)).pack()
но
variable=[]
for i in range(10):
import functools
temp=functoools.partial(number_of_my=i,main_func)
t=Button(text=i,calback=temp)
t.pack()
variable.append(t)
суть в том что нужно где-то сохранять номер строки к которй привязана кнопка для этого можно юзать список либо оборачивать функции чемто...