У меня проблемы с добавлением элемента в список, где список является атрибутом пользовательского класса, который я создал.Объект, содержащий список, должен быть доступен через диктовку.
Для контекста я создаю игру, в которой может быть несколько игроков, с каждым игроком связан объект 'Player', который отслеживает их сокет, имя,символизируйте список своих предыдущих ходов и статус убийства:
class Player():
def __init__(self, sock, name, char, moves, kill_status):
self.sock = sock
self.name = name
self.char = char
self.moves = moves
self.kill_status = kill_status
Эти объекты игрока хранятся в диктанте ИГРОКА, который напоминает следующее:
PLAYER = {
1: Player(sock, name, char, moves, kill_status)
2: Player(sock, name, char, moves, kill_status)
}
Так что, если я хочунапример, для доступа к имени игрока1 я просто использую:
player1_name = PLAYER[1].name
атрибут ходов изначально передается в виде пустого списка, чтобы я мог добавлять ходы отдельных игроков по мере их создания.
Проблема в том, что когда я использую
PLAYER[1].moves.append(move)
Ход добавляется в список каждого игрока в диктанте, так что даже
PLAYER[2].moves
возвращает список, включающийход, который я пытался добавить к игроку 1
Как я могу добавить ход специально в список игроков, которым он был сделан?
РЕДАКТИРОВАТЬ:
Вот каксоздатьдиктовать изначально:
moves = []
for i in range(1, LOBBY_SIZE + 1):
PLAYER[i] = pi.Player(None, name, None, moves, kill_status)