1

我对python有点陌生,整天都在搜索这方面的信息。我希望能够询问用户他们想要多少个实例,并根据他们的输入,根据他们的要求创建尽可能多的类实例。

我还希望能够让每个实例的名称基于输入,例如询问人的姓名或其他内容。

NumPlayers = input("How many people are playing? ")
for i in range(0, int(NumPlayers)-1):
    name = input("What is your name? ")
    name = Player() 

这将类似于John = Player()但“约翰”将是用户给我们的任何名称,并且用户想要的玩家数量将有多少。

从我今天的研究来看,允许人们确定自己实例的名称似乎不是一个好主意,所以在这一点上,我在想更多的事情:

NumPlayers = input("How many people are playing? ")
for i in range(0, int(NumPlayers)-1):
    name = input("What is your name? ")
    Player+i = Player(name)

Player1 = Player("John")对于更多玩家来说,这将与等相同。这是可能的吗?这真的难倒我。只是为了澄清一些事情,类本身已经在代码中,在提供的代码中 Player 是一个已经用方法和所有东西定义的类。

4

2 回答 2

3

您正在寻找的是一个数据结构,特别是一个list

no_players = input("How many people are playing? ")
players = []
for _ in range(int(no_players)):
    name = input("What is your name? ")
    players.append(Player(name))

这将产生一个列表[Player(...), Player(...), ...]。这可以在其他操作中被索引( players[2])或迭代( )。for player in players:我建议您阅读文档以获取更多信息。

附带说明一下,使用列表推导可以更好地构造一些列表。

于 2012-11-23T00:48:34.110 回答
0

正如 Lattyware 建议的那样,您正在寻找一个将您的玩家放入的列表。我可以建议稍微修改一下您的程序,以接受尽可能多的玩家,只要他们输入一个新名称?

players = []
while True:
    playername = input("Insert a new player (empty to begin):")
    if playername:
        players.append(Player(playername))
    else:
        break
于 2012-11-23T00:59:36.657 回答