You could use
def meth2(self, name, funcname):
getattr(self, funcname)(name)
since getattr(self, 'meth1')
is equivalent to self.meth1
.
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!
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.