gpt4 book ai didi

Python,在 lambda 函数中以正确的方式赋值

转载 作者:行者123 更新时间:2023-12-01 03:14:10 24 4
gpt4 key购买 nike

我正在尝试制作一个按钮来打印我分配给它们的值。在我看来,所有按钮都应该在其文本值上打印相同的值。相反,它们都打印“4”。解决这个问题的正确方法是什么?

from tkinter import *

root = Tk()

def printFunc(text):
print(text)

list=[0,1,2,3,4]

for i in list:

w = Button(root, text=list[i],command=lambda: printFunc(list[i])).pack()

root.mainloop()

最佳答案

解决方案是在构造 lambda 时提供默认值

from Tkinter import *


root = Tk()

def printFunc(text):
print(text)

lst=[0,1,2,3,4]

for i in lst:

w = Button(root, text=lst[i],command=lambda x=lst[i]: printFunc(x)).pack()

root.mainloop()

关于Python,在 lambda 函数中以正确的方式赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42613717/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com