首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Python:在运行时根据用户输入创建类的实例

Python:在运行时根据用户输入创建类的实例
EN

Stack Overflow用户
提问于 2012-11-23 00:47:11
回答 2查看 1.2K关注 0票数 1

我是python的新手,我已经搜索了一整天的相关信息。我希望能够询问用户他们想要多少个实例,并根据他们的输入,根据他们的请求创建任意数量的类实例。

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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“将是用户给我们的任何名称,并且将有用户想要的播放器数量。

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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")等相同。这是可能的吗?这真的把我难倒了。只是为了澄清一些事情,类本身已经在代码中,在提供的代码播放器中是一个已经用方法和所有东西定义的类。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-11-23 00:48:34

您正在寻找的是一个数据结构,具体地说,是一个list

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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:)。我建议你阅读the documentation以获得更多信息。

顺便说一句,一些列表可以用list comprehension更好地构造。

票数 3
EN

Stack Overflow用户

发布于 2012-11-23 00:59:37

正如Lattyware建议的那样,你正在寻找一个可以把你的球员放入其中的列表。我可以建议稍微修改一下你的程序,只要他们输入新名字,你就可以接受尽可能多的球员吗?

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
players = []
while True:
    playername = input("Insert a new player (empty to begin):")
    if playername:
        players.append(Player(playername))
    else:
        break
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13521878

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文