Search code examples
pythonoopgetattrmethod-dispatch

Call method from string


If I have a Python class, and would like to call a function from it depending on a variable, how would I do so? I imagined following could do it:

class CallMe: # Class

   def App(): # Method one

      ...

   def Foo(): # Method two

      ...

variable = "App" # Method to call

CallMe.variable() # Calling App()

But it couldn't. Any other way to do this?


Solution

  • You can do this:

    getattr(CallMe, variable)()
    

    getattr is a builtin method, it returns the value of the named attributed of object. The value in this case is a method object that you can call with ()