我想在使用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