如何在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)
答
您可以使用getattr
获得与该成员的名字作为一个字符串对象中的一员。
getattr(self, 'handle_' + instruction)(data)
+0
很好,谢谢!一旦防机器人计时器完成,我会接受。 – 2012-03-11 07:29:41
答
这将要使用的方法GETATTR
func = getattr(self, 'handle_%s' % instruction)
func(data)
你可以只通过实际的函数作为参数,太。函数是对象。 – 2012-03-11 10:01:34