En Python, ¿hay alguna manera de enlazar un método independiente sin llamarlo?Python: ¿enlazar un método independiente?
Estoy escribiendo un programa wxPython, y para una cierta clase decidí que sería bueno para agrupar los datos de todos mis botones juntos como una lista de nivel de clase de tuplas, 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 incendio espectacular y lloro.
Estaba buscando en línea una solución a lo que parece ser un problema fácil de resolver. Lamentablemente no pude encontrar nada. En este momento, estoy usando functools.partial
para solucionar este problema, pero ¿alguien sabe si hay una forma pitonica limpia, sensata y sana de vincular un método independiente a una instancia y seguir pasándolo sin llamarlo?
definen "método sin consolidar" – Christopher
@Christopher - Un método que no está vinculado al ámbito del objeto al que se aspira desde, por lo que tiene que pasar uno mismo de forma explícita. –