87 votes

Comment invoquer une fonction sur un objet dynamiquement par son nom ?

En Python, disons que j'ai une chaîne qui contient le nom d'une fonction de classe que je sais qu'un objet particulier aura, comment puis-je l'invoquer ?

C'est-à-dire:

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

110voto

Adam Vandenberg Points 8098

Utilisez "getattr": http://docs.python.org/library/functions.html?highlight=getattr#getattr

 obj = MyClass()
try:
    func = getattr(obj, "dostuff")
    func()
except AttributeError:
    print "dostuff not found"

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X