Я начал писать клиентское приложение Python 3.x. Серверное приложение уже существует и написано на C. Сервер предоставляет файл заголовка C с описанием двух структур, используемых для отправки и получения данных по UDP (я использую модуль Python socket
).
Проблема в том, что структуры C довольно большие (около 200 элементов в каждой). Если я использую модуль Python struct
для упаковки / распаковки данных, не слишком элегантным решением будет ручная упаковка / распаковка 200 элементов, например:
struct.pack('H...I', data1, ..., data200)
Кроме того, я хочу иметь возможность доступа к полученным / отправленным элементам в Python с использованием синтаксиса, подобного С. Например, если я делаю на стороне сервера C
send.data.pos = pos;
было бы неплохо (наиболее естественно), если бы я мог получить доступ к переменной pos
на стороне клиента Python следующим образом:
pos = recv.data.pos
Обратите внимание, что вопрос , а не , как автоматически записать структуру в Python из файла заголовка, как в этом потоке (у меня нет проблем при написании каждого поля структуры по одному один в Python), а точнее, какой будет лучший способ организовать данные в Python (например, в классах, с использованием словарей и т. д.), который позволит мне использовать функции Python и упростит код, а данные станут легко доступны ( Я бы предпочел использовать только стандартные модули Python, без внешнего программного обеспечения). Каков будет самый элегантный способ добиться этого?