我有一个简单的用例,我有一个类:
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)?
我尝试使用getattr,但不知道该怎么做。
谢谢!
答案 0 :(得分:3)
您可以使用
def meth2(self, name, funcname):
getattr(self, funcname)(name)
因为getattr(self, 'meth1')
相当于self.meth1
。
答案 1 :(得分:0)
可以将funcname作为参数传递给getattr函数,并使用参数名称调用它。
def meth1(self, name):
print name
def meth2(self, name, funcname):
getattr(self, funcname)(name)
那将打印通过meth1传递给meth2的值名称。