所以,我有一个这样的课:
class Test(object):
def call(self,instruction,data):
pass
def handle_foo(self,data):
print "Foo: %s" % data
def handle_bar(self,data):
print "%s: bar" % data
代码称之为:
t = Test()
t.call("foo","abc")
t.call("bar","def")
如何通过在函数名中插入变量“instruction”来使调用定义调用函数?
我尝试了这个,但它没有用
def call(self,instruction,data):
func = "self.handle_%s" % instruction
func(data)
答案 0 :(得分:2)
那将使用getattr方法
func = getattr(self, 'handle_%s' % instruction)
func(data)
答案 1 :(得分:1)
您可以使用getattr
获取对象的成员,并将成员的名称作为字符串。
getattr(self, 'handle_' + instruction)(data)