Василий Каменец
Знаток
(462)
2 недели назад
Чтобы создать объект Player в Python с параметрами, которые поступают позже, вы можете сделать так:
Создайте объект Player с пустыми или временными параметрами.
Получите данные от клиента.
Измените параметры объекта после создания, когда получите данные от клиента.
Вот как это можно реализовать:
python
Копировать код
class Player:
def __init__(self):
# Параметры по умолчанию, которые позже будут изменены
self.hero = None
def set_hero(self, hero):
self.hero = hero
def __repr__(self):
return f'Player(hero={self.hero})'
Теперь в основном цикле сервера создайте объект Player и используйте его метод set_hero() для изменения параметров после получения данных от клиента:
python
Копировать код
import socket
# Создаем объект Player до начала работы с клиентом
player = Player()
# Настраиваем сервер
server_socket = socket.socket(socket AF_INET, socket.SOCK_STREAM)
server_socket.bind(('localhost', 12345))
server_socket.listen()
print("Server is listening...")
# Бесконечный цикл, чтобы работать с клиентом
while True:
client_socket, address = server_socket.accept()
print(f'Connection from {address} established')
# Получаем данные от клиента, например, имя героя
data = client_socket.recv(1024).decode('utf-8')
# Устанавливаем героя для объекта Player после его создания
if not player.hero:
player.set_hero(data)
print(f'Hero set to: {player.hero}')
else:
print(f'Player already has a hero: {player.hero}')
# Ваша основная логика обработки запросов
# Закрываем соединение после обработки
client_socket.close()