通过list ref Python访问动态创建的实例

时间:2017-03-03 04:41:19

标签: python-3.x object

我创建了一堆团队对象,并且对于创建的每个对象,我都将实例的名称添加到列表中。如何使用此列表访问每个实例?

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])

在这种情况下,

playGame()是Team类中的一个函数,并且可以播放团队的参数......

我会用这个来最终将游戏得分返回给每个团队,但是一旦我学会了如何动态地将团队对象名称放在等式的左边,我就可以解决这个问题。

知道怎么做吗?(我使用的是Python 3.5.1)

1 个答案:

答案 0 :(得分:1)

如果您真的想要列表,可以将实例本身 - 而不是其名称 - 添加到列表中。

如果你这样做,你上面的例子开箱即用。

或者,如果哟将实际使用名称,使用字典而不是列表 - 您将能够将名称用作键,将实例用作值:

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

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