Python 如何将参数传递给Tkinter按钮';什么是回调命令?

Python 如何将参数传递给Tkinter按钮';什么是回调命令?,python,callback,tkinter,arguments,Python,Callback,Tkinter,Arguments,我有两个按钮,分别命名为“ButtonA”,“ButtonB”。 我希望程序打印“hello,ButtonA”和“hello,ButtonB”,如果单击任何按钮。 我的代码如下: def sayHi(name): print 'hello,', name root = Tk() btna = Button(root, text = 'ButtonA', command = lambda: text) btna.pack() 单击按钮A时,出现错误,未定义文本 我理解这个错误,但如何将

我有两个按钮,分别命名为“ButtonA”,“ButtonB”。 我希望程序打印“hello,ButtonA”和“hello,ButtonB”,如果单击任何按钮。 我的代码如下:

def sayHi(name):
    print 'hello,', name

root = Tk()
btna = Button(root, text = 'ButtonA', command = lambda: text)
btna.pack()
单击按钮A时,出现错误,
未定义文本


我理解这个错误,但如何将ButtonA的文本传递给lambda?

文本在您的情况下不是函数。只需将其作为:

value = 'ButtonA'
btna = Button(root, text = value, command = lambda: sayHi(value))
这样你就可以工作了。

这应该可以:

...
btnaText='ButtonA'
btna = Button(root, text = btnaText, command = lambda: sayHi(btnaText))
btna.pack()

有关更多信息,请查看

此答案没有显示如何像问题所问的那样打印“hello”。好的,我没有完整阅读问题。您只需在之前定义文本值并将其发送到lamdba回调。可能的重复项。另一个发生在另一个用户5小时前。惊人的巧合!我需要使用
lambda:self.MyFunction(MyParam)
调用我的函数,不确定它是否值得编辑?