В Python есть ли способ привязать несвязанный метод без его вызова?
Я пишу программу wxPython, и для определенного класса я решил, что было бы неплохо сгруппировать данные всех моих кнопок вместе в виде списка кортежей на уровне класса, например:
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)
Проблема в том, что поскольку все значения handler
являются несвязанными методами, моя программа взрывается ярким пламенем, и я плачу.
Я искал в Интернете решение, которое, казалось, должно быть относительно простой и решаемой проблемой. К сожалению, я ничего не нашел. Прямо сейчас я использую, functools.partial
чтобы обойти это, но знает ли кто-нибудь, есть ли чистый, здоровый, питонический способ привязать несвязанный метод к экземпляру и продолжать передавать его, не вызывая его?