如何在python 2.7中的类中创建变量函数?

时间:2012-03-11 07:25:18

标签: python 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")

如何通过在函数名中插入变量“instruction”来使调用定义调用函数?

我尝试了这个,但它没有用

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

2 个答案:

答案 0 :(得分:2)

那将使用getattr方法

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

答案 1 :(得分:1)

您可以使用getattr获取对象的成员,并将成员的名称作为字符串。

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