Как мы можем передать структуру C в Python?


Я новичок как в C, так и в Python. В эти дни я учусь встраивать Python в C. Поскольку я вызываю функции Python из C, я хотел бы знать, как мы можем передать структуру C в Python?

Заранее большое спасибо!

3 3

3 ответа:

Самое чистое, что можно сделать, это, вероятно, создать новый тип и реализовать tp_getattr, либо возвращая соответствующий член структуры, либо вызывая исключение в зависимости от переданного аргумента.

Эта документация по расширению и/или встраиванию Python может помочь вам начать работу.

Существует также ctypes библиотека для динамической загрузки собственных библиотек DLL и передачи C-подобных структур в них и из них (полностью из Python).

Это, вероятно, не то, что вы ищете, но мы используем LCM для совместного использования структур c между программами c/c++, python, java и matlab через udp с многоадресной рассылкой. Это очень удобно для робототехники.