繁体   English   中英

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

[英]How do I make a variable function in a class in 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)

那将使用getattr方法

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM