我想用类中的变量调用函数:
class A:
def __init__(self, name, jsonItem):
fDic = {
'A', self.build_item(jsonItem)
}
self.fActive = fDic[name]
def build_item(self, jsonItem):
return [jsonItem["name"],jsonItem["property"]]
def run_function(self):
self.fActive()
main.py:
data = A("A", jsonItem)
print data.run_function()
当我打电话给我时:
'set' object has no attribute '__getitem__'
你能解释一下我吗?
答案 0 :(得分:5)
fDic
中的 __init__
是一个集合,您不能使用[ ]
来访问集合中的项目。看来您打算将fDic
用作字典。那么您的__init__
的代码应该是
def __init__(self, name, jsonItem):
fDic = {
'A' : self.build_item(jsonItem)
}
self.fActive = fDic[name]
尤其要注意:
之后的'A'
。