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 はクラスの名前です。次のように 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 に答える