您想使用您收到的輸入來創建Player
類的實例並將其添加到列表中。例如
# Simple Player class
class Player(object):
def __init__(self, name):
self._name = name
def get_name(self):
return self._name
def __repr__(self):
return 'Player: ' + self._name
# Prompt for player names and return a list of Player instances
def get_players():
lineup = []
for _ in range(9):
name = input("Enter player ... ")
player = Player(name)
lineup.append(player)
return lineup
def main():
lineup = get_players()
print(lineup)
print("Your Player lineup is")
for i, p in enumerate(lineup, 1):
print('{0}. {1}'.format(i, p.get_name()))
# Example: Prompt for position and output Player name at position
while True:
pos = input("Get player at position: ")
if not pos: # enter empty line to quit
break
# get a Player instance from lineup list at index
player_at = lineup[int(pos) - 1]
print("Player at position {0} is {1}".format(pos, player_at.get_name()))
編輯:
我可能誤解了用戶如何被輸入一個名稱,認爲它是任何名稱'Bob'
而不是一些關鍵('p1', 'p2', ...
),因此,你可以創建一個將密鑰映射到您的Player實例的字典。
player_map = {
'p1': Player('player 1'),
'p2': Player('player 2'),
'p3': Player('player 3'),
'p4': Player('player 4'),
'p5': Player('player 5'),
'p6': Player('player 6'),
'p7': Player('player 7'),
'p8': Player('player 8'),
'p9': Player('player 9')
}
然後你就可以得到每個玩家的實例。
注意:未對人爲錯誤添加處理。例如無效的密鑰。
def get_players():
lineup = []
for _ in range(len(player_map)):
name = input("Enter player ... ")
lineup.append(player_map[name])
return lineup
謝謝。找到這個幫助,尤其是與其他回覆聯繫在一起 – ron