tkinter 中使用的奇怪的 lambda 结构
Strange lambda construct used in tkinter
我正在尝试使用 Tkinter 创建一个虚拟键盘,我正在尝试做一些事情
类似于下面提供的代码。我在理解下面代码中的 lambda
结构时遇到了问题,据我所知,这是唯一无需为键盘上存在的每个字母编写按钮小部件的方法。
我一直都明白,当你使用 lambda
时,你会做一些类似的事情:
variable = lambda x: x+5
但在下面提供的代码中,Button
小部件有一个 lambda
我以前从未见过这样写的:
command=lambda value=text: select(entry, value)
我花了一整天阅读有关 lambda
的内容,但我仍然无法理解。
这是代码link:
具体来说,这是我遇到问题的行:
tk.Button(window, text=text, width=width,
command=lambda value=text: select(entry, value),
padx=3, pady=3, bd=12, bg="black", fg="white", takefocus = False
).grid(row=y, column=x, columnspan=columnspan)
我的问题是我不知道你可以在 lambda 上使用默认参数....我很惊讶没有多少人意识到我是多么愚蠢。
command=lambda value=text: select(entry, value)
如果 text 是一个变量,value 或 value=text 是一样的。那是
我的问题
我正在尝试使用 Tkinter 创建一个虚拟键盘,我正在尝试做一些事情
类似于下面提供的代码。我在理解下面代码中的 lambda
结构时遇到了问题,据我所知,这是唯一无需为键盘上存在的每个字母编写按钮小部件的方法。
我一直都明白,当你使用 lambda
时,你会做一些类似的事情:
variable = lambda x: x+5
但在下面提供的代码中,Button
小部件有一个 lambda
我以前从未见过这样写的:
command=lambda value=text: select(entry, value)
我花了一整天阅读有关 lambda
的内容,但我仍然无法理解。
这是代码link:
具体来说,这是我遇到问题的行:
tk.Button(window, text=text, width=width,
command=lambda value=text: select(entry, value),
padx=3, pady=3, bd=12, bg="black", fg="white", takefocus = False
).grid(row=y, column=x, columnspan=columnspan)
我的问题是我不知道你可以在 lambda 上使用默认参数....我很惊讶没有多少人意识到我是多么愚蠢。
command=lambda value=text: select(entry, value)
如果 text 是一个变量,value 或 value=text 是一样的。那是 我的问题