使用 Tkinter 按钮时在 lambda 函数中返回值

Returning values in lambda function while using Tkinter button

我利用 lambda 函数调用了两个不同的函数(read_input_data(),它从 GUI 读取数据 a 和 b,以及 运行,它获取数据 a 和 b 以及进行一些计算)按下 Tkinter 按钮后

start_button = tk.Button(text = 'Start', command = lambda:[ [a,b] = read_input_data(), run(a,b)], bg = 'firebrick', fg = 'white', font = ('helvetica', 9, 'bold'))

但是,returns 语法错误。如果我从 read_input_data() 中删除输出 [a,b],语法将变得正确,但我的代码将无法工作,因为我需要 a 和 b 来执行第二个函数 运行(a,b ).

Lambdas 只是一个 shorthand 符号,在功能上与使用 def 定义的普通函数没有太大区别,除了只允许 单个表达式

x = lambda a, b: a + b

真的等同于

def x(a, b):
    return a + b

以同样的方式,你尝试做的与做的没有什么不同:

def x():
    a, b = read_input_data()
    run(a, b)
start_button = tk.Button(text = 'Start', command = x, bg = 'firebrick', fg = 'white', font = ('helvetica', 9, 'bold'))