How to invoke a function on an object dynamically by name? [duplicate]
In Python, say I have a string that contains the name of a class function that I know a particular object will have, how can I invoke it?
That is:
obj = MyClass() # this class has a method doStuff()
func = "doStuff"
# how to call obj.doStuff() using the func variable?
Solution 1:
Use the getattr
built-in function. See the documentation
obj = MyClass()
try:
func = getattr(obj, "dostuff")
func()
except AttributeError:
print("dostuff not found")