2017-03-03 70 views
0

我有一堆我創建的團隊對象,並且對於創建中的每一個對象,我都將該實例的名稱添加到列表中。我如何使用這個列表來訪問每個實例?通過列表參考訪問動態創建的實例Python

InstanceNames = [ 'TEAM1', 'TEAM2', 'team3',等...]

我想知道如何做到這一點:

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

(這應該是像說「team1'.playGame(」 TEAM2' )

什麼我真的問的是如何得到的字符串從InstanceNames返回左側[0]所以我可以在我的代碼中動態地使用每個實例名稱,這是我想要做的: InstanceNames [0] .playGame(InstanceNames [1] 更具體 x = 0時Y = 1個InstanceNames [X] .playGame(InstanceNames在這種情況下[Y])

瑣事()是在Team類的功能並採取球隊的論點被玩...

我會用它來最終返回到每個團隊的比賽的分數,但我可以弄清楚,一旦我學會了如何動態放置團隊對象的名稱在等式的左邊。

任何想法如何做到這一點(我使用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

你說得對,我第一次看到它就誤解了你說的話。我感謝你的幫助,我希望你有一個愉快的週末! –