我的课程中有以下方法定义:
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
,但不知道
怎么样。你能救我吗?
答案 0 :(得分: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
答案 1 :(得分:1)
什么是M
?如果nod
(即self.nodes[node]
)是包含self.M
属性名称的字符串,则可以通过M
的命名空间字典{{1}访问该属性}}。因此,要访问其self.M.__dict__
字段,请使用value
。
如果那不是你想要做的,我建议你提供一些关于你班级的更多信息。
答案 2 :(得分:0)
print self.M.nod.value
改为使用:
print self.M.node.value