Methode einer Klasse anhand eines Strings "starten"

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.
Benutzeravatar
jens
Moderator
Beiträge: 8458
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Methode einer Klasse anhand eines Strings "starten"

Beitragvon jens » Samstag 3. September 2005, 20:47

Wie kann ich eine Methode einer Klasse "starten" wenn ich den Namen der Methode in einem String habe?

mit getattr() scheind es nicht zu gehen:

Code: Alles auswählen

class test_class:
    def test( self ):
        return "foo"

print getattr( test_class, "test" )

Liefert:
<unbound method test_class.test>

Ich will aber "foo" zurück :(

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Benutzeravatar
jens
Moderator
Beiträge: 8458
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Beitragvon jens » Samstag 3. September 2005, 21:21

Oh, es geht doch. Ich hab () vergessen, somit ist es keine Instanz. So geht's:

Code: Alles auswählen

print getattr( test_class(), "test" )

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd

Wer ist online?

Mitglieder in diesem Forum: Google [Bot]