Python: привязать несвязанный метод?
Есть ли в Python способ связать несвязанный метод, не вызывая его?
Я пишу программу wxPython, и для определенного класса я решил, что было бы неплохо сгруппировать данные всех моих кнопок в один список кортежей на уровне класса, например:
<code>class MyWidget(wx.Window): buttons = [("OK", OnOK), ("Cancel", OnCancel)] # ... def Setup(self): for text, handler in MyWidget.buttons: # This following line is the problem line. b = wx.Button(parent, label=text).Bind(wx.EVT_BUTTON, handler) </code>
Проблема в том, что все значенияhandler
это несвязанные методы, моя программа взрывается захватывающим пламенем, и я плачу.
Я искал в Интернете решение, которое, по-видимому, должно быть относительно простой и разрешимой. К сожалению, я ничего не смог найти. Прямо сейчас я используюfunctools.partial
чтобы обойти это, но знает ли кто-нибудь, существует ли чистый, здоровый, Pythonic способ связать несвязанный метод с экземпляром и продолжить передавать его, не вызывая его?