2

作业代码有问题。基本上我要做的是获取一个对象列表并将它们传递给我的 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:列表索引必须是整数,而不是 Bomber”

Bomber 是类的名称。我这样调用 fire 方法:

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

任何帮助深表感谢。

4

1 回答 1

8

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

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

在 python 中,该for构造不仅仅适用于数字,它直接适用于您正在循环的序列的元素。

于 2012-09-04T20:10:29.627 回答