2009-12-23 4 views
6

Dites que j'ai un objet de classe nommé test. Test a diverses méthodes, l'une d'entre elles est quelquechose().Comment accéder à la méthode d'un objet lorsque le nom de la méthode est dans une variable?

je une variable nommée method = "whatever"

Comment puis-je accéder à la méthode en utilisant la variable avec le test?

Merci!

+0

Pourquoi pensez-vous en avoir besoin? Pouvez-vous fournir le reste du code? Habituellement, il existe une façon plus simple de faire cela qui n'implique pas de déterminer un nom de méthode via une chaîne. –

Répondre

9

Obtenez l'attribut avec getattr:

method = "whatever" 
getattr(test, method) 

Vous pouvez aussi appeler:

getattr(test, method)() 
2

Pour accès la méthode, getattr(test, test.method); De cette façon, vous pouvez le lier à une variable, le renvoyer comme un résultat de fonction, le passer comme argument, et ainsi de suite. Pour appelez également, ajouter des arguments entre parenthèses (juste entre parenthèses s'il n'y a pas d'arguments), par exemple getattr(test, test.method)().

Questions connexes