0
我的应用程序是从数据库填充其字段的表单。我正在编写在这些记录之间导航的函数。 我在写下“下一个记录”功能时遇到问题。Tkinter命令Lambda函数修改变量
在任何给定时间,屏幕上显示的“当前记录”在变量current_record
中。
def next_record(current_record):
current_index = current_record.index
current_record = Competitor(competitors[current_index + 1], current_index + 1)
print(current_record.index)
populate_form(current_record)
我的按钮调用这个函数:
action_button_6 = tkinter.Button(group_buttons, text='>>', width=5,
command=lambda: next_record(current_record))
虽然功能,它的工作,并加载新记录的形式,它不重新分配“current_record”在新的竞争对手如展函数的第三行。
我该如何修改该函数中的变量?
'next_record'中的'current_record'是局部变量,它与'lambda'中的'current_record'无关。如果您在'next_record'中为'current_record'指定了新元素,则会失去与原始记录的联系。 – furas
我知道我已经让自己的生活变得更加困难了,因为他们都是一样的。我的问题是如何修改传递给lambda函数的变量? – Rhys
如果可以的话,您必须更改现有元素中的值 - 例如'current_record.some_variable = competitors [current_index + 1]'和'current_record.index = current_index + 1'。 – furas