In Python, c'è un modo per associare un metodo non associato senza chiamarlo?
Sto scrivendo un programma wxPython e per una certa classe ho deciso che sarebbe stato bello raggruppare i dati di tutti i miei pulsanti insieme come un elenco di tuple a livello di classe, in questo modo:
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)
Il problema è che, poiché tutti i valori di handler
sono metodi non vincolati, il mio programma esplode in un tripudio spettacolare e io piango.
Stavo cercando una soluzione online a quello che sembra dovrebbe essere un problema relativamente semplice e risolvibile. Purtroppo non sono riuscito a trovare niente. In questo momento, sto usando functools.partial
per aggirare questo problema, ma qualcuno sa se esiste un modo pulito, sano e pitonico per associare un metodo non associato a un'istanza e continuare a trasmetterlo senza chiamarlo?