Python: Ungebundene Methode binden?

Gibt es in Python eine Möglichkeit, eine ungebundene Methode zu binden, ohne sie aufzurufen?

Ich schreibe ein wxPython-Programm und für eine bestimmte Klasse habe ich beschlossen, die Daten aller meiner Schaltflächen in einer Liste von Tupeln auf Klassenebene zusammenzufassen:

<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>

Das Problem ist, da alle Werte vonhandler sind ungebundene Methoden, mein Programm explodiert in einer spektakulären Flamme und ich weine.

Ich habe mich online nach einer Lösung umgesehen, die ein relativ einfaches und lösbares Problem sein könnte. Leider konnte ich nichts finden. Im Moment benutze ichfunctools.partial Aber weiß jemand, ob es eine saubere, gesunde und pythonische Möglichkeit gibt, eine ungebundene Methode an eine Instanz zu binden und sie weiterzugeben, ohne sie aufzurufen?

Antworten auf die Frage(5)

Ihre Antwort auf die Frage