Найти - Пользователи
Полная версия: Использование методов классов с++ в python-программе
Начало » Python для новичков » Использование методов классов с++ в python-программе
1
denis230101
Здравствуйте.
У меня следующая проблема: имеется набор файлов .cpp, в которых реализованы нужные мне классы (на языке c++ соответственно). Мне необходимо вызывать методы этих классов из программы на языке python. В связи с этим возникло несколько вопросов:

1) Возможно ли обращаться к этим методам, используя модуль ctypes, предварительно скомпилировав .cpp файлы в виде разделяемой библиотеки? Если да, то каким образом (в документации по ctypes это не описано).
2) Если модуль ctypes для этого не подходит, существует ли какой-нибудь аналогичный ему модуль для решения данной задачи?
3) Если такого модуля не существует, то каким образом решить данную задачу? Если способов решения несколько, хотелось бы узнать наиболее простой для понимания и быстрый способ.
doza_and
1) да. Дописываете функции на языке c++ (обычные) которые вызывают методы ваших классов. Экспортируете и используете при помощи ctypes.
2) ну он подходит. Есть много вариантов подцепления. например boost python, swig и т.п. Эти подходы не требуют в простейшем варианте никаких модулей - делают из вашего кода уже разделяемую библиотеку которую можно подгрузить в python.
3) простота реализации как раз в этом порядке ctypes,boost(если не боитесь ставить boost),swig
Более навороченные способы позволяют автоматизировать подключение, но требуют большего времени на освоение (за денек можно освоить). Поэтому если не очень много функций -пишите сами обертки и используйте ctypes.
denis230101
Большое спасибо!
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB