Python: Vincular um método não consolidado?
Em Python, existe uma maneira de ligar um método não vinculado sem chamá-lo?
Eu estou escrevendo um programa wxPython, e para uma certa classe eu decidi que seria legal agrupar os dados de todos os meus botões como uma lista de tuplas no nível da classe, assim:
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)
O problema é que todos os valores dehandler
são métodos não acoplados, meu programa explode em um incêndio espetacular e eu choro.
Eu estava procurando por uma solução para o que parece ser um problema relativamente direto e solucionável. Infelizmente não consegui encontrar nada. Agora estou usandofunctools.partial
para contornar isso, mas alguém sabe se existe uma maneira pitônica e saudável de ligar um método não vinculado a uma instância e continuar passando-a sem chamá-la?