Python:基于用户输入在运行时创建类的实例

Python:基于用户输入在运行时创建类的实例,python,Python,我对python有些陌生,整天都在搜索这方面的信息。我希望能够询问用户需要多少实例,并根据他们的输入,创建他们所请求的任意数量的类实例 我也希望能够有每个实例的名称是基于输入,如询问的人的名字或东西 NumPlayers = input("How many people are playing? ") for i in range(0, int(NumPlayers)-1): name = input("What is your name? ") name = Player()

我对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()
,但是“John”将是用户给我们的任何名称,并且将有用户想要的任何玩家

根据我今天的研究,似乎允许人们确定他们自己实例的名称不是一个好主意,因此在这一点上,我想的更多是这样的:

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(…)、Player(…)、…]
列表。这可以在其他操作中被索引(
players[2]
)或迭代(
对于players-in-players:
)。我建议你多读书


作为补充说明,有些列表可以用。

更好地构建,因为Lattyware建议您正在寻找一个列表,将玩家放入其中。 我可以建议你稍微修改一下你的程序,只要他们换了一个新名字,你就可以接受任意多的球员吗

players = []
while True:
    playername = input("Insert a new player (empty to begin):")
    if playername:
        players.append(Player(playername))
    else:
        break

请注意,为类保留
CapWords
,因此
NumPlayers
对于局部变量来说是个坏名字。我不知道除了简单的X=something()之外还有什么方法可以实例化,谢谢。Append和Extend对我来说总是有点棘手,所以这非常有用。
players = []
while True:
    playername = input("Insert a new player (empty to begin):")
    if playername:
        players.append(Player(playername))
    else:
        break