En Python, ¿hay alguna forma de vincular un método independiente sin llamarlo?
Estoy escribiendo un programa wxPython, y para una determinada clase decidí que sería bueno agrupar los datos de todos mis botones como una lista de tuplas a nivel de clase, así:
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)
El problema es que, dado que todos los valores de handler
son métodos independientes, mi programa explota en un resplandor espectacular y lloro.
Estaba buscando en línea una solución a lo que parece ser un problema relativamente sencillo y con solución. Desafortunadamente no pude encontrar nada. En este momento, estoy usando functools.partial
para solucionar esto, pero ¿alguien sabe si hay una forma Pythonic saludable y limpia para vincular un método no vinculado a una instancia y continuar pasándolo sin llamarlo?