Seite 1 von 1

Variablenersetzung in Methoden-Aufruf

Verfasst: Freitag 10. Juni 2011, 10:21
von dimflmoser
Hallo zusammen,

ich bin recht neu in Python und komm' nicht weiter. Methoden oder Eigenschaften von Klassen rufe ich über die Punktnotation auf, z. B.

Code: Alles auswählen

Klasse.methode()
Klasse.eigenschaft
Was tue ich aber nun, wenn der Name der Methode bzw. Eigenschaft in einer Variablen gespeichert ist? Ich dachte da an sowas wie:

Code: Alles auswählen

var = "methodenName"
Klasse.${var}()
bzw.

Code: Alles auswählen

var = "eigenschaft"
Klasse.${var}
Nun ja, das war wohl schön gedacht, ruft aber einen Syntax-Fehler hervor.

Hat jemand eine Idee?

Danke Helmut

Re: Variablenersetzung in Methoden-Aufruf

Verfasst: Freitag 10. Juni 2011, 10:32
von lunar
@dimflmoser: "obj.${var}" ist ziemlicher Blödsinn ... raten ist keine sonderlich sinnvolle Taktik beim Programmieren :) Python bietet die Funktion "getattr()" zum dynamischen Attributzugriff:

Code: Alles auswählen

getattr(obj, 'simple_attribute')
getattr(obj, 'method')()

Re: Variablenersetzung in Methoden-Aufruf

Verfasst: Freitag 10. Juni 2011, 10:32
von pillmuncher
dimflmoser hat geschrieben:

Code: Alles auswählen

var = "methodenName"
Klasse.${var}()
bzw.

Code: Alles auswählen

var = "eigenschaft"
Klasse.${var}
Syntax-Raten? hehe :D

Versuchs mal mit

Code: Alles auswählen

obj = Klasse()
x = getattr(obj, 'eigenschaft')