質問

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!

役に立ちましたか?

解決

You could use

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

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

他のヒント

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.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top