Python tkinter使用多个参数绑定一个函数

use*_*768 1 python arguments tkinter

我有一个普遍的问题,我无法真正找到答案,所以希望你们可以提供帮助.我有一个带3个参数的函数,下面是我所拥有的一个例子.

def someFunction(self, event, string):

   do stuff ..

self.canvas.bind("<Button-1>", self.someFunction("Hello"))
Run Code Online (Sandbox Code Playgroud)

当我运行它时,我得到一个错误,说我通过了一些功能2参数而不是3.我不知道为什么..

mgi*_*son 10

在这里,我们结合的结果someFunction(或试图反正).这失败了,因为当python试图获得结果时someFunction,它只调用它传递1个参数("Hello"),当someFunction真正需要2个显式参数时.你可能想要这样的东西:

self.canvas.bind('<Button-1>',lambda event: self.someFunction(event,"Hello"))
Run Code Online (Sandbox Code Playgroud)

这绑定了一个新函数(由其创建lambda并包装self.someFunction),它传递正确的参数.