假设我有一个赋值给变量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]
之类的事情吗?换句话说,为func
和dunc
分配字典中的数据,但不明确指定每个作业self.func
或self.dunc
?
答案 0 :(得分:2)
如果我理解你的问题,你可以这样做:
def __init__(self, data):
for name, func in data.items():
setattr(self, name, func)
然后,您可以参考self.func
或self.dunc
(或data
中的任何其他内容)。