Python 将可选事件传递给具有默认参数的方法

Python 将可选事件传递给具有默认参数的方法,python,tkinter,parameters,Python,Tkinter,Parameters,我有一个接受可选事件的方法。有时它会被小部件命令调用,因此没有事件,有时它会被绑定到Tkinter窗口并传递事件的按键调用。但是,当通过按键调用该方法时,lambda函数传递的布尔值不会被传递-该方法始终打印一个真值(其默认参数)。我做错了什么?这是一个可行的例子 import tkinter as tk class Main(tk.Tk): def __init__(self): tk.Tk.__init__(self) self.button = t

我有一个接受可选事件的方法。有时它会被小部件命令调用,因此没有事件,有时它会被绑定到Tkinter窗口并传递事件的按键调用。但是,当通过按键调用该方法时,lambda函数传递的布尔值不会被传递-该方法始终打印一个真值(其默认参数)。我做错了什么?这是一个可行的例子

import tkinter as tk

class Main(tk.Tk):
    def __init__(self):
        tk.Tk.__init__(self)
        self.button = tk.Button(self, text="Call Method", command=self.meth)
        self.button.pack()
        self.bind("<Control-s>", lambda var = False : self.meth(var))

    def meth(self, *event, var=True):
        print(event, var)

if __name__ == '__main__':
    main = Main()
    main.mainloop()
将tkinter作为tk导入
主类(tk.tk):
定义初始化(自):
tk.tk.\uuuuu初始化(self)
self.button=tk.button(self,text=“Call Method”,command=self.meth)
self.button.pack()
self.bind(“,lambda var=False:self.meth(var))
def meth(自身,*事件,var=True):
打印(事件,变量)
如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu':
main=main()
main.mainloop()

好的,我想好了。新手犯的错误。按键应该绑定到
lambda事件
,如下所示:

self.bind("<Control-s>", lambda event, var = False : self.meth(var))
self.bind(“,lambda事件,var=False:self.meth(var))

为什么不直接使用另一种方法,这样它就不需要变量呢?如果我不知道如何用这种方法,那么我就必须这样做。我对tkinter很不熟悉,但我想帮助一下,它是否会以
事件的形式发送任何不同的信息呢?是的,我刚刚知道了。愚蠢的错误。谢谢。哈哈,干杯!很高兴你拿到了:D