Seite 1 von 1

String in Funktionsaufruf umwandeln

Verfasst: Donnerstag 2. Dezember 2010, 12:47
von TVpy
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

Re: String in Funktionsaufruf umwandeln

Verfasst: Donnerstag 2. Dezember 2010, 13:04
von 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. :-)

Re: String in Funktionsaufruf umwandeln

Verfasst: Donnerstag 2. Dezember 2010, 13:44
von EyDu
BlackJack hat geschrieben:Auf keinen Fall solltest Du irgendwelche Funktionen oder Schlüsselwörter verwenden, die mit 'e' anfangen. :-)
else?

Re: String in Funktionsaufruf umwandeln

Verfasst: Donnerstag 2. Dezember 2010, 16:11
von TVpy
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