AttributeError:'function'对象没有属性'values'

时间:2012-07-15 09:21:05

标签: python

我在python中编写(或者更确切地说是代码)游戏,我遇到了以下问题。 当我使用循环这个循环应该给我字典的值(x.chest等,每个字典看起来像{'fire': 0.0, 'water': 0.0, 'acid': 0.0,'air': 0.0}):

for damag in (x.chest, x.stomach, x.lhand, x.rhand, x.lleg, x.rleg):
    for value in damag.values():
        print(value)

我得到了

AttributeError: 'function' object has no attribute 'values'

如果我将代码更改为:

for damag in (x.chest, x.stomach, x.lhand, x.rhand, x.lleg, x.rleg):
    for value in damag().values():
        print(value)

它有效,但只是部分。它从x.chest返回值,然后给出错误:

TypeError: 'dict' object is not callable

我认为解决这个问题的方法必须简单,但我的想法存在缺陷,所以我找不到它。我可以通过为每个字典做单独的循环来解决这个问题,但我认为这不是最好的想法。

1 个答案:

答案 0 :(得分:4)

显然,您的x属性列表不是同质的;至少一个你列出的属性是一个函数,而至少另一个是一个dict。