Я пытаюсь отделить GUI и логику в приложении wxPython с помощью python 2.7.5. Поскольку 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?
лямбда? – M4rtini
Вы искали "анонимные функции python"? – Blender
У меня есть, но ни один из примеров функции лямбда, которые я нашел, не показал, что можно просто вызвать метод ... думаю, я пропустил его. Благодарю. – Korijn