Python: Bind an Unbound Method?
Czy w Pythonie istnieje sposób na powiązanie niezwiązanej metody bez wywoływania jej?
Piszę program wxPython i dla pewnej klasy zdecydowałem, że dobrze byłoby zgrupować dane wszystkich moich przycisków razem jako listę krotek na poziomie klasy, tak:
<code>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) </code>
Problem polega na tym, że wszystkie wartościhandler
są metodami niezwiązanymi, mój program eksploduje spektakularnym płomieniem i płaczę.
Szukałem w Internecie rozwiązania tego, co wydaje się być stosunkowo prostym, rozwiązywalnym problemem. Niestety nic nie znalazłem. W tej chwili używamfunctools.partial
aby obejść ten problem, ale czy ktoś wie, czy istnieje czysty, zdrowy, Pythoniczny sposób na powiązanie niezwiązanej metody z instancją i kontynuowanie przekazywania jej bez wywoływania?