鱼C论坛

 找回密码
 立即注册
查看: 1611|回复: 2

[已解决]tkinter中的lambda问题

[复制链接]
发表于 2023-8-28 21:34:33 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
from tkinter import *
root = Tk()
listg = Listbox(root)
for items in ['sjf','sddjf','s;j']:
   
    listg.insert(END,items )
listg.pack()
button = Button(root,text = '删掉他',command =lambda x = listg:x.delete(ACTIVE))
button.pack()
mainloop()
能否详细解释一下command =lambda x = listg:x.delete(ACTIVE)这一段代码是什么意思,该作何理解
最佳答案
2023-8-28 21:34:45
[b]关于 command=lambda x = listg:x.delete(ACTIVE) 的解释[/b]

这段代码是用于创建一个按钮,并为按钮绑定一个回调函数。让我们逐步解释这段代码的含义。

1. lambda x = listg::这是一个lambda函数,它创建了一个匿名函数。在这个lambda函数中,x 是一个参数,被赋值为 listg

2. x.delete(ACTIVE):在lambda函数中,我们使用 x 来调用 delete(ACTIVE) 方法。在这里,x 代表 listg 控件,delete(ACTIVE)Listbox 控件的方法,用于删除选中的项。

3. command=:这是按钮的一个选项,用于指定按钮被点击时要执行的函数。

整体而言,这段代码创建了一个按钮,当按钮被点击时,会调用 listg.delete(ACTIVE) 方法来删除 listg 列表框中当前选中的项。

Lambda函数被用作回调函数的一种常见方式,它允许我们在创建按钮的同时定义一个简单的函数功能。在这个例子中,通过使用lambda函数,我们可以传递 listg 控件作为参数,并在按钮点击时执行删除操作。

希望对你有所帮助!如果还有其他问题,请随时提问。

球一个最佳答案谢谢啦!这对我非常重要!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-8-28 21:34:45 | 显示全部楼层    本楼为最佳答案   
[b]关于 command=lambda x = listg:x.delete(ACTIVE) 的解释[/b]

这段代码是用于创建一个按钮,并为按钮绑定一个回调函数。让我们逐步解释这段代码的含义。

1. lambda x = listg::这是一个lambda函数,它创建了一个匿名函数。在这个lambda函数中,x 是一个参数,被赋值为 listg

2. x.delete(ACTIVE):在lambda函数中,我们使用 x 来调用 delete(ACTIVE) 方法。在这里,x 代表 listg 控件,delete(ACTIVE)Listbox 控件的方法,用于删除选中的项。

3. command=:这是按钮的一个选项,用于指定按钮被点击时要执行的函数。

整体而言,这段代码创建了一个按钮,当按钮被点击时,会调用 listg.delete(ACTIVE) 方法来删除 listg 列表框中当前选中的项。

Lambda函数被用作回调函数的一种常见方式,它允许我们在创建按钮的同时定义一个简单的函数功能。在这个例子中,通过使用lambda函数,我们可以传递 listg 控件作为参数,并在按钮点击时执行删除操作。

希望对你有所帮助!如果还有其他问题,请随时提问。

球一个最佳答案谢谢啦!这对我非常重要!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-8-28 21:35:05 | 显示全部楼层
这段代码是使用lambda函数作为Button的command参数的一种方式。lambda函数是一种匿名函数,它可以在不定义函数的情况下直接使用。在这个例子中,lambda函数接受一个参数x,并且将x设置为默认值为listg。lambda函数的主体部分是x.delete(ACTIVE),它的作用是删除Listbox中被选中的项。

lambda函数的语法是:lambda 参数列表: 表达式

在这个例子中,参数列表只有一个参数x,表达式是x.delete(ACTIVE)。x.delete(ACTIVE)的作用是删除Listbox中被选中的项,其中ACTIVE是一个特殊的索引值,表示当前被选中的项。

通过使用lambda函数,我们可以将Listbox对象listg作为参数传递给lambda函数,并在lambda函数中对其进行操作,实现了按钮点击时删除Listbox中被选中项的功能。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-21 15:44

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表