Создание и сохранение набора # объектов класса из пользовательского ввода - PullRequest
0 голосов
/ 10 октября 2018

Я делаю калькулятор подсчета очков, который должен уметь запрашивать у пользователя количество игроков, а затем запрашивать информацию о каждом игроке, сохраняя ее для каждого раунда подсчета очков.

Проблема Iв настоящее время есть способ выписать приглашение ввода пользователя, которое создает количество Player заданных объектов, а затем присваивает каждому вновь созданному объекту свою собственную вызываемую переменную (желательно, чтобы оно печатало введенное имя игрока).

Iпытался использовать ввод, который создает цикл ввода на основе заданного числа, но он запрашивает только ввод без сохранения чего-либо.

Вот мой класс Player:

class Player:
    def __init__(self, name, inca, power, power_mask, short, medium, long):
        self.name = name
        self.inca = inca
        self.power = power
        self.power_mask = power_mask
        self.short = short
        self.medium = medium
        self.long = long

Будет ли этолучше всего как-нибудь написать def, который создает объект класса со всеми параметрами, в которых он мне нужен?Если так, как бы я это записал?

1 Ответ

0 голосов
/ 10 октября 2018

Возможно, что-то в этом роде, вы можете создать словарь, который содержит все экземпляры, а затем вы можете вызывать их по имени для любых целей, которые вам нужны.

class Player:
    def __init__(self, name, inca, power, power_mask, short, medium, _long):
        self.name = name
        self.inca = inca
        self.power = power
        self.power_mask = power_mask
        self.short = short
        self.medium = medium
        self.long = _long

n = int(input('Enter amount of players: '))
d = {}
for i in range(n):
    name = input('Enter name: ')
    inca = input('Enter inca: ')
    power = input('Enter power: ')
    power_mask = input('Enter power mask: ')
    short = input('Enter short: ')
    medium = input('Enter medium: ')
    _long = input('Enter long: ')
    d[name] = Player(name, inca, power, power_mask, short, medium, _long)

print(d['vash'].power)
Enter amount of players: 1   
Enter name: vash
Enter inca: rnation
Enter power: over 9000
Enter power mask: off
Enter short: comings
Enter medium: ...
Enter long: oh yeah
over 9000
...