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.
Antworten
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

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

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

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

Code: Alles auswählen

print getattr( test_class(), "test" )

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Antworten