Gibt es in Python eine Möglichkeit, eine ungebundene Methode zu binden, ohne sie aufzurufen?Python: Eine ungebundene Methode binden?
ich ein WxPython Programm schreibe, und für eine bestimmte Klasse I entschieden, würde die Daten aller meiner Tasten zusammen als eine Klasse-Ebene-Liste von Tupeln Gruppe schön sein, etwa so:
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)
Das Problem ist, da alle Werte von handler
sind ungebundene Methoden, explodiert mein Programm in einem spektakulären Brand und ich weine.
Ich suchte online nach einer Lösung für was scheint, sollte ein relativ direktes, lösbares Problem sein. Leider konnte ich nichts finden. Im Moment verwende ich functools.partial
, um dies zu umgehen, aber weiß jemand, ob es eine saubere, gesunde, pythonische Methode gibt, eine ungebundene Methode an eine Instanz zu binden und sie weiterzugeben, ohne sie aufzurufen?
definieren „ungebundene Methode“ – Christopher
@Christopher - Ein Verfahren, das nicht auf den Umfang des Objekts gebunden ist es aus gesaugt wurde, so dass Sie sich selbst explizit zu übergeben. –