如何在Python 2.7的类中创建一个变量函数?

问题描述:

所以,我有一个这样的类:如何在Python 2.7的类中创建一个变量函数?

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") 

如何拨打电话定义插入变量“指令”调用的函数中函数名称?

我想这一点,但没有奏效

def call(self,instruction,data): 
    func = "self.handle_%s" % instruction 
    func(data) 
+2

你可以只通过实际的函数作为参数,太。函数是对象。 – 2012-03-11 10:01:34

您可以使用getattr获得与该成员的名字作为一个字符串对象中的一员。

getattr(self, 'handle_' + instruction)(data) 
+0

很好,谢谢!一旦防机器人计时器完成,我会接受。 – 2012-03-11 07:29:41

这将要使用的方法GETATTR

func = getattr(self, 'handle_%s' % instruction) 
func(data)