2017-03-03 8 views
0

私は作成したチームオブジェクトをたくさん持っています。作成したそれぞれのインスタンスについて、インスタンス名をリストに追加しました。このリストを使用して各インスタンスにアクセスするにはどうすればよいですか?リストrefを使ってダイナミックに作成されたインスタンスにアクセスするPython

InstanceNames = [ 'team1'、 'team2'、 'team3'、等...]

私はこれを行う方法を知りたい:

InstanceNames [0] .playGame(InstanceNames [ 1])

私が本当に求めています何

(これは「team1'.playGame(」team2' を言うようにする必要があります)私は、文字列はそう左側の[0] InstanceNamesから返されたのですかどのようです私はここで私のコードで動的に各インスタンス名を使用することができます私は何をしたいです: InstanceNames [0] .playGame(InstanceNames [1] より具体的には、X = 0、Y = 1 InstanceNames [X] .playGame(InstanceNamesは、この場合の[Y])

playGame()は、チームのクラスの関数です。 ...

私は最終的に各チームにゲームの得点を返すためにこれを使用しますが、チームオブジェクト名を動的に配置する方法を学ぶと、これを理解することができます方程式の左辺にある。

これを行うにはどのように任意のアイデア(私は、Python 3.5.1を使用しています)

答えて

1

あなたが本当にリストをしたい場合は、インスタンス自身を追加することができます - ?リストに - ない自分の名前を。

上記のあなたの例は、それを行うとすぐに機能します。ヨーヨーではなく、リストの名前の実際の使用、usea辞書を作れば

または、 - あなたは、値としてキーとして名、およびインスタンスを使用することができるようになります:

teams = {} 
teams["team1"] = Team(name="team1", ...) 
... 

teams["team1"].play_game(teams["team2"]) 
+0

ありがとうございましたjsbuenoあなたの素早い返答のために。この種の答えは私の質問ですが、私が必要とするレベルには答えません。私が本当に求めているのは、左側のInstanceNames [0]から返された文字列を取得する方法です。ここでは、各インスタンス名を動的に使用できます。 InstanceNames [0] .playGame(InstanceNames [1]) より具体的にはx = 0、Y = 1 InstanceNames [X] .playGame(InstanceNames [Y]) これは私のプログラムは、適切なオブジェクトへの適切な呼び出しが –

+0

申し訳ありませんが行うことができます - この答えは告げますこのコードスニペットがどのように動作するのか正確には: '' playGame ''メソッドの左側にある '.'にアクセスする場合は、文字列ではなくオブジェクトのインスタンスが必要です。 名前を持ちオブジェクトに到達させたい場合は、答えの両方の部分を使用します:インスタンスの辞書を名前で保持し、名前付きリストを 'teams [InstanceNames [0 ]]。playGame(...) ' – jsbueno

+0

あなたは正しいです、私は初めてあなたが私がそれを見たときに言っていたことを誤解しました。私はあなたの助けに感謝し、素晴らしい週末を願っています! –

関連する問題