Первый раз в Python class
Впервые встретился с классами в Python. Работает половина из задуманного. Но понимаю, что он слишком громоздкий и можно сократить. https://replit.com/@nekokat89/supportclass
games_type = ["Casual", "Ranked", "Arena", "Draft", "Friend Match"]
fraction_list = ["Monsters", "Skellige", "Scoia'Tael", "Northern Realms", "Nilfgaard", "Syndicate"]
result = ["Win", "Loss", "Draw"]
class match_history(tuple):
def __init__(self, default = ("",)*6):
self._game_mode, self._fraction, self._opponent, self._opponent_fraction, self._result,self._score = default
def __repr__(self):
return repr((self._game_mode, self._fraction, self._opponent, self._opponent_fraction, self._result,self._score))
@property
def game_mode(self):
return self._game_mode
@property
def fraction(self):
return self._fraction
@property
def opponent(self):
return self._opponent
@property
def opponent_fraction(self):
return self._opponent_fraction
@property
def result(self):
return self._result
@property
def score(self):
return self._score
@game_mode.setter
def game_mode(self, item):
if item in games_type:
self._game_mode = item
@fraction.setter
def fraction(self, item):
if item in fraction_list:
self._fraction = item
@opponent.setter
def opponent(self, item):
if type(item) is str:
self._opponent = item
@opponent_fraction.setter
def opponent_fraction(self, item):
if item in fraction_list:
self._opponent_fraction = item
@result.setter
def result(self, item):
if item in result:
self._result = item
@score.setter
def score(self, item):
if type(item) is str:
self._score = item
Условия были такие:
Класс должен был при инициализации без вводных данных (match_history()) создавать пустой кортеж с 6ю элементами типа str ("",)*6.
При создании нового экземпляра с данными (match_history(("Casual", "Nilfgaard", "no_skillz_", "Scoia'Tael", "Loss", "0:2"))), необходима проверка 0, 1, 3, 4 элементов кортежа(нереализовано)
Вывод экземпляра класса через print и return должен возвращать пустой кортеж или данные (если они есть).
Где разыскать матчасть по классам для "инфузорий"? Неплохо было бы посмотреть пример, в котором присутствует нечто подобное по структуре относительно ввода-вывода данных.