0

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

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

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

4

1 回答 1

1

Lambda 只是一种简写符号,在功能上与使用 定义的普通函数没有太大区别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'))
于 2022-03-03T10:20:00.390 回答