是否可以将其他参数传递给事件回调?
例如,如果我的事件绑定看起来像这样;
self.Bind(wx.EVT_BUTTON, self.do_something, self.button)
Run Code Online (Sandbox Code Playgroud)
我怎么能把参数传递给我的方法?
self.do_something(self,event,arguments):
"""do something with arguments"""
pass
Run Code Online (Sandbox Code Playgroud)
使用functools.partial,或在一般情况下使用lambda表达式.
部分形式将是
functools.partial(self.do_something, args)
Run Code Online (Sandbox Code Playgroud)
请注意,在这种情况下,event参数将在参数列表的末尾传递.等效的lambda形式是:
lambda event: self.do_something(args, event)
Run Code Online (Sandbox Code Playgroud)
使用拉姆达:
self.Bind(wx.EVT_BUTTON, lambda event, args=args: self.do_something(event, args), self.button)
self.do_something(self,event,arguments):
"""do something with arguments"""
pass
Run Code Online (Sandbox Code Playgroud)