Question

I have a simple use case, I have a class:

class A:
  def meth1(self, name):
    ...
  def meth2(self, name, funcname):
    # funcname is a string 'meth1'
    # how do I invoke meth1 by using funcname string here self.funcname(name)?

I tried using getattr, but was not sure how to go about it.

Thanks!

Was it helpful?

Solution

You could use

def meth2(self, name, funcname):
    getattr(self, funcname)(name)

since getattr(self, 'meth1') is equivalent to self.meth1.

OTHER TIPS

Could pass the funcname as a parameter to the getattr function and invoke it with the parameter name.

def meth1(self, name):
    print name

def meth2(self, name, funcname):
    getattr(self, funcname)(name)

That would print the value name passed to meth2 via meth1.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top