在Python中使用函数名称为函数分配函数

时间:2012-07-21 05:00:07

标签: python

假设我有一个赋值给变量func的函数。 func包含函数本身(即。print func返回<function func at 0x103f25410>

我有一个简单的课程:

class Item():
    def __init__(self, data):
    # init code
        pass
    def func(self):
        pass
    def dunc(self):
        pass

让我们说__init__我在func收到了data,可以data.func访问它。我可以通过self.consume = data.func指定消费。

但是,如果我在数据中有函数字典呢?

{"func" : <function func at 0x103f25410>, "dunk" : <function dunk at 0x103f25410>}

无论如何我可以做self.key = data[key]之类的事情吗?换句话说,为funcdunc分配字典中的数据,但不明确指定每个作业self.funcself.dunc

1 个答案:

答案 0 :(得分:2)

如果我理解你的问题,你可以这样做:

def __init__(self, data):
    for name, func in data.items():
        setattr(self, name, func)

然后,您可以参考self.funcself.dunc(或data中的任何其他内容)。