2010-10-17 9 views
27

In Python sagen, ich habe eine Zeichenfolge, die den Namen einer Klassenfunktion enthält, die ich weiß, ein bestimmtes Objekt wird, wie kann ich es aufrufen?Python - Wie man eine Funktion auf einem Objekt dynamisch nach Namen aufruft?

Das heißt:

obj = MyClass() # this class has a method doStuff() 
func = "doStuff" 
# how to call obj.doStuff() using the func variable? 
+1

Ich bin neugierig, warum Sie benötigen würde, dies zu tun. Das hört sich so an, als ob du etwas auf die harte Tour machst. Können Sie Ihre Situation näher erläutern? – JoshD

+0

Ich habe eine CLI-App, wo ich Befehle von der Kommandozeile akzeptieren möchte, aber nicht wie folgt vorgehen möchte: "if command = 'doThing' dann obj.doThing() elseif command = 'someOtherThing' ... und usw. Ich möchte der Handler-Klasse Methoden hinzufügen und sie wären dann automatisch auf dem Client verfügbar –

+0

ist das in Ordnung, was wäre das für eine Situation, in der ich mich in einer ähnlichen Situation befinde? aber ich bin mir nicht sicher, ob ich diesen Weg gehen werde, irgendwie glaube ich, dass es klarer wäre, wenn ich explizit Verzweigung benutze .. Was meinst du? Danke! – ultrajohn

Antwort

Verwandte Themen