Соединение Python и C++

soedinenie python i c Интеграция Python/C

Стандартная реализация Python в данное время написана на языке C, поэтому к интерпретатору Python относятся все обычные правила соединения программ C с программами C++. Поэтому не требуется реализация никаких специальных механизмов для Python, но нужно сделать несколько замечаний.

При встраи ва нии Python в программу C++ не нужно придерживаться каких-то отдельных правил. Просто скомпонуйте библиотеку Python и вызывайте ее функции из C++. Заголовочные файлы Python автоматически заключаются в объявления extern "C" {…}, чтобы подавить корректировку имен C++. Поэтому библиотека на языке Python выглядит для C++, как любой другой компонент C — нет необходимости перекомпиляции самого Python компилятором C++.

При рас шире нии Python с помощью компонентов C++ заголовочные файлы Python остаются дружественными к C++, поэтому вызовы Python API в расширениях на C++ действуют, как любые другие вызовы из C++ в C. Но необходимо следить, чтобы в программном коде расширения, видимом Python, использовались объявления extern "C", благодаря чему их сможет вызывать программный код C, на котором написан Python. Например, для создания оболочки класса C++ SWIG генерирует модуль расширения C++, в котором функция инициализации объявлена именно таким способом.

Использованная литература:

Марк Лутц — Программирование на Python, 4-е издание, II том, 2011

Каталог сайтов Всего.ру
Оцените статью
Секреты программирования
Добавить комментарий