How to dynamically call a method in python?
call, dynamic, methods, python-2.7, variables
Solution
Methods are just attributes, so use `getattr()` to retrieve one dynamically:
MethodWanted = 'children'
getattr(ObjectToApply, MethodWanted)()
Note that the method name is `children`, not `.children()`. Don't confuse syntax with the name here. `getattr()` returns just the method object, you still need to call it (jusing `()`).
Problem
I would like to call an object method dynamically. The variable "MethodWanted" contains the method I want to execute, the variable "ObjectToApply" contains the object. My code so far is: ``` MethodWanted=".children()" print eval(str(ObjectToApply)+MethodWanted) ``` But I get the following error: ``` exception executing script File "<string>", line 1 <pos 164243664 childIndex: 6 lvl: 5>.children() ^ SyntaxError: invalid syntax ``` I also tried without str() wrapping the object, but then I get a "cant use + with str and object types" error. When not dynamically, I can just execute this code to get the desired result: ``` ObjectToApply.children() ``` How to do that dynamically?