我正试着做一个按钮,打印出我对它们所赋予的价值。 在我看来,所有按钮都应该在文本值上打印相同的值。相反,他们都打印“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
是如何工作的。解决方案是使用functools.partial
而不是lambda。你知道吗另外,总是把
pack()
放在新行上,这样你就避免了另一个非常常见的初学者问题。你知道吗解决方案是在构造lambda时提供一个默认值
相关问题 更多 >
编程相关推荐