列表索引必须是整数,而不是对象

时间:2012-09-04 20:09:15

标签: python list

家庭作业代码出现问题。基本上我要做的就是接受一个对象列表并将它们传递给我的fire方法。

def fire(self,targets):
    i = 0
    for i in targets:
        x,y = targets[i].position
        tx,ty = self.position
        d = getDist(targets[i].position, self.position)

每当我调用fire方法并传入对象时,它指向第17行,即x,y = targets[i].position行,并说“TypeError:list indices必须是整数,而不是Bomber”

轰炸机是班级的名称。我把火方法称为:

bOne.fire([bTwo, tOne, tTwo, tThree])

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:8)

您正在遍历列表本身,这意味着您不需要将值用作索引:

>>> for elem in ['a', 'b', 'c']:
...     print elem
'a'
'b'
'c'

在python中,for构造不仅仅与数字一起工作,它直接与你正在循环的序列的元素