2017-02-19 13 views
0

私はPythonで2つの別々のファイルを持っています。一つのファイルでは、私はクラスのゲーム "で、このコードを持っている:そして、第2のファイルで、私はその機能の下で、このクラスでは「ゲーム」をとる関数を持っている関数からリスト値を取得するにはどうすればよいですか? (Python)

def getPosition(self,score): 
    position = [((3,1), 'Good'),((1,2), 'Bad')] 
    return position 

「getPosition」が存在する:

def calculateNextStep(game): 
    actions = [] 
    actions.append(game.getPosition[0]) 
    return actions 

私は行動にgetPositionの位置0にリスト値を追加したいが、このエラーを取得:

line 95, in calculateNextStep 
    actions.append(game.getPosition[0])   
TypeError: 'instancemethod' object has no attribute '__getitem__' 

私ははっきりとはPythonのいくつかの重要な部分を理解していません。私は私のことを研究しようとしましたが、私は完全に迷っていて、今はいくつかの理論を持っています。

+2

してくださいエラーのスタックトレース全体を表示します。 – kennytm

+3

実際のコードを掲載してもよろしいですか?これは、 '' game.getPosition [0] ''(かっこではなく角かっこ)のようなものから期待される結果に似ています。 – jasonharper

+0

@jasonharperはい、私はそれを変更しました –

答えて

0

game.getPosition[0]を使用すると、ゲームに属する配列getPositionにアクセスしようとしています。代わりに、getPositionは関数なので、最初に()をこの末尾に追加することで呼び出す必要があります。getPosition()getPosition()は、あなたがそれらを最初に呼び出すことにより、最初の要素にアクセスすることができます配列を返すようになりました、一例で、このgetPosition()[0]

編集のようなそれらのアクセス:

def calculateNextStep(game): 
    actions = game.getPosition()[0] 
    return actions 

これはタプルを返します:

((3,1), 'Good')

+0

を提供し、getPosition()の位置にある値を割り当てる場合は、calculateNextStepでどのように行うことができますか? –

+0

まあ 'getPosition()'は配列を返すので、それをそのまま扱うことができます。位置配列の値を設定する場合は、位置配列をとる新しい関数 'setPosition(inArray)'を作成する必要があります。したがって、位置配列を取得し、位置を更新してから設定します。アレイの操作については、http://www.i-programmer.info/programming/python/3942-arrays-in-python.htmlを参照してください。 – ChickenFeet

関連する問題