PythoNN: Василий Рябов - "Парсинг бинарных данных с помощью ctypes, или пишем на питоне как на Си"

  Рет қаралды 516

Никита Соболев

Никита Соболев

Күн бұрын

Пікірлер: 4
@Ca1vema
@Ca1vema Жыл бұрын
Как парсить данные переменной длины через структуры из ctypes? Кажется, что кроме как сделать шаг назад и переместиться в категорию "Как не надо делать! (а по рукам?)" выхода нет. Получается всё таки придётся делать так, как не надо.
@VasilyRyabovVarjag
@VasilyRyabovVarjag Жыл бұрын
Тот неловкий момент, когда комментарий сложнее доклада. 😅 А если серьезно, то зависит от того, насколько переменные эти данные. В структуре можно сделать и union, который интерпретировать в зависимости от предыдущего поля. Или несколько структур завести: свою на каждый стабильного размера кусок данных. Но, в конце концов, если комфортнее делать как неправильно, то получить проклятие от потомков никто не может запретить. А если проект потом все равно умрет, то и совсем пофиг! 😅
@Ca1vema
@Ca1vema Жыл бұрын
@@VasilyRyabovVarjag В нашем случае у нас в пакетах что-то типо "в октете N длина поля, а дальше само поле" и "если здесь X, то длина поля 2 байта, если Y то один". Ну и всё в таком духе :)) Извращаемся с struct`ом )
@VasilyRyabovVarjag
@VasilyRyabovVarjag Жыл бұрын
@@Ca1vema тут прямо visitor паттерном пахнет) В зависимости от типа поля разные методы звать. Так обычно синтаксическое дерево (AST) парсят (там тоже типы узлов разные). Но может и на вашу структуру пакетов такой подход ляжет вдруг. Кода мало не станет, но хотя бы стандартный подход какой-никакой.
PythoNN: Денис Аникин - "Жизнь после FastAPI"
32:21
Никита Соболев
Рет қаралды 1,9 М.
Лучший курс по Python 7: typeshed
35:20
Никита Соболев
Рет қаралды 2,2 М.
MAGIC TIME ​⁠@Whoispelagheya
00:28
MasomkaMagic
Рет қаралды 31 МЛН
小蚂蚁会选到什么呢!#火影忍者 #佐助 #家庭
00:47
火影忍者一家
Рет қаралды 127 МЛН
World’s strongest WOMAN vs regular GIRLS
00:56
A4
Рет қаралды 8 МЛН
Про Kafka (основы)
49:23
Владимир Богдановский
Рет қаралды 406 М.
GEF - Automatize seus Testes com Playwright e GitHub Actions!
1:33:45
GEF - Grupo de Estudos de Frontend
Рет қаралды 25
КАК УСТРОЕН TCP/IP?
31:32
Alek OS
Рет қаралды 196 М.
Лучший курс по Python 9: Переменные
46:35
Никита Соболев
Рет қаралды 2,9 М.
MAGIC TIME ​⁠@Whoispelagheya
00:28
MasomkaMagic
Рет қаралды 31 МЛН