我在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
我认为解决这个问题的方法必须简单,但我的想法存在缺陷,所以我找不到它。我可以通过为每个字典做单独的循环来解决这个问题,但我认为这不是最好的想法。
答案 0 :(得分:4)
显然,您的x
属性列表不是同质的;至少一个你列出的属性是一个函数,而至少另一个是一个dict。