String in Funktionsaufruf umwandeln

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
TVpy
User
Beiträge: 7
Registriert: Samstag 5. Dezember 2009, 15:06

Hallo,
ich arbeite mich grad in wxPython ein. Jetzt wollte ich die Namen der Buttons usw. in einem XML- oder txt-file speichern.
Zum Testen wollte ich ähnlich dem Beispiel aus dem Buch wxPyhton in Action Seite 122 Listing 5.4. vorgehen.

Code: Alles auswählen

def buttonData(self):
     return (("First", self.OnFirst),
               ("<< PREV", self.OnPrev),
               ("NEXT >>", self.OnNext),
               ("Last", self.OnLast))

def createButtonBar(self, panel, yPos=0):
     xPos = 0
     for eachLabel, eachHandler in self.buttonData():
          pos = (xPos, yPos)
          button = self.buildOneButton(panel, eachLabel, eachHandler, pos)
          xPos += button.GetSize().width

def buildOneButton(self, parent, label, handler, pos=(0,0)):
     button = wx.Button(parent, -1, label, pos)
     self.Bind(wx.EVT_BUTTON, handler, button)
     return button
Nur das ich die Daten für das Tuple aus einer Datei auslese. Wenn ich die Daten auslese bekomme ich Namen und Funktions-Aufruf als Strings. Wie wandle ich den String mit dem Funktions-Aufruf so um das ich z.B. aus dem String 'self.OnFirst' den Aufruf self.OnFirst bekomme?


Gruß und schonmal danke,

Markus
BlackJack

@TVpy: Am besten lässt Du das 'self.' weg und speicherst nur den Namen der Methode und holst Dir die dann mit `getattr()` vom Objekt. Das schränkt Dich dann auf `self` ein, aber es ist unter den sicheren, wohl die einfachste Methode.

Auf keinen Fall solltest Du irgendwelche Funktionen oder Schlüsselwörter verwenden, die mit 'e' anfangen. :-)
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

BlackJack hat geschrieben:Auf keinen Fall solltest Du irgendwelche Funktionen oder Schlüsselwörter verwenden, die mit 'e' anfangen. :-)
else?
Das Leben ist wie ein Tennisball.
TVpy
User
Beiträge: 7
Registriert: Samstag 5. Dezember 2009, 15:06

Vielen Dank für die schnelle Hilfe!
:D :D

Mein Test-Programm läuft jetzt einwandfrei, SUPER!

Und auf 'e' werde ich verzichten.


Nochmals danke,

Gruß

Markus
Antworten