我想在使用python 2.7.5的wxPython应用程序中解耦GUI和逻辑。由于wxPython使用事件绑定,我认为我会扩展这种方法。总结我的代码:Python 2.7.5中的匿名回调函数?
GUI.py
class MainInterface():
def __SetupControlPanel(self, controlPanel):
self.DoSomethingButton = wx.Button(controlPanel, wx.ID_ANY, "Do something")
def BindCallback_DoSomething(self, callback):
self.frame.Bind(wx.EVT_BUTTON, callback, self.DoSomethingButton)
main.py
def DoSomething(event):
someLogicClass.DoSomething()
interface.BindEvent_DoSomething(DoSomething)
这样可以使应用程序的两个部分很好,但我不喜欢我的定义方式每个回调函数在main.py中都有一个单独的函数,因为它通常只调用一个逻辑函数。从JS背景中,我习惯于能够使用匿名函数。我想像这样的事情会令我的代码有些更紧凑:
interface.BindEvent_DoSomething(def (event):
someLogicClass.DoSomething()
)
有没有办法在Python实现这样的语法?
lambda函数? – M4rtini
您是否搜索过“蟒蛇匿名函数”? – Blender
我有,但没有我找到的lambda函数示例显示,有可能简单地调用一个方法...猜我错过了它。谢谢。 – Korijn