无法从函数获得输出

M.H*_*Hol 0 python

我想在类中使用变量调用函数:

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()
Run Code Online (Sandbox Code Playgroud)

main.py:

data = A("A", jsonItem)
print data.run_function()
Run Code Online (Sandbox Code Playgroud)

当我打电话给我时,我有:

'set' object has no attribute '__getitem__'
Run Code Online (Sandbox Code Playgroud)

你能解释一下吗?

小智 5

fDicin __init__是一个集合,您不能使用[ ]来访问集合中的项目。看来您打算fDic用作字典。那么您的代码__init__应该是,

def __init__(self, name, jsonItem):
    fDic = {
        'A' : self.build_item(jsonItem)
    }
    self.fActive = fDic[name]
Run Code Online (Sandbox Code Playgroud)

特别要注意:after 'A'