2017-03-03 87 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

你说得对,我第一次看到它就误解了你说的话。我感谢你的帮助,我希望你有一个愉快的周末! –