0

我的班级中有以下方法定义:

def show_values(self):
        for node in self.Nodes:
            nod = self.Nodes[node]
            print self.M.nod.value

我收到以下错误

File "nfg.py", line 30, in show_values
    print self.M.nod.value
AttributeError: 'Model' object has no attribute 'nod'

我当然想到达self.M.(self.Nodes[node]).value,但不知道如何。你能帮助我吗?

4

3 回答 3

3

假设self.Nodes[node]是您要用于属性查找的字符串,请尝试以下操作:

def show_values(self):
    for node in self.Nodes:
        nod = self.Nodes[node]
        print getattr(self.M, nod).value

注意getattr(foo, 'bar')相当于foo.bar

如果self.M是字典或其他映射类型,并且您想要进行键查找,请使用以下命令:

def show_values(self):
    for node in self.Nodes:
        nod = self.Nodes[node]
        print self.M[nod].value
于 2012-10-29T21:16:01.087 回答
1

是什么M?如果nod(ie, self.nodes[node]) 是一个包含 的属性名称的字符串self.M,您可以通过M的命名空间字典访问该属性self.M.__dict__。因此,要访问其value字段,请使用self.M.__dict__[nod].value.

如果这不是你想要做的,我建议你提供更多关于你的班级的信息。

于 2012-10-29T21:13:13.053 回答
0

你是说:

print self.M.nod.value

改用这个:

print self.M.node.value
于 2012-10-29T21:12:35.757 回答