2013-03-02 2 views
3

Я новичок для повышения и одна из его библиотек, которые я не могу понять, это Boost.Python. Может ли кто-нибудь объяснить мне подробно, как эта совместимость достигнута? В документации есть всего несколько слов о метапрограммировании. P.S. Я пытался выглядеть кодом, но из-за моего отсутствия знаний на С ++ я не понимал принципов. Заранее спасибоКак работает boost :: python? Любые идеи о деталях реализации?

+0

Вы всегда можете посмотреть код;) –

+0

@OliCharlesworth Это не помогло. Мне нужно простое объяснение. – MainstreamDeveloper00

+0

Реализация Boost.Python - это система идентификации и преобразования типов, которая взаимодействует с Python [C API] (http://docs.python.org/2/ca-api/). Ссылка [This] (http://www.boost.org/doc/libs/1_53_0/libs/python/doc/internals.html) содержит очень высокоуровневую информацию о том, что делает реализация. –

ответ

4

Там два способа: осуществление взаимодействия

1) от "процесса Python", функция вызова, написанной в C++.

У Python уже есть система для загрузки DLL, они называются «модулями расширения». Boost.Python может скомпилировать ваш источник для его создания. В основном вы пишете небольшую обертку, чтобы объявить функцию, вызываемую из Python, и «метапрограммирование» должно делать что-то вроде обнаружения того, какие типы выполняет C++-функция, и что она может исправить правильный код, чтобы преобразовать их из/в эквивалентные типы Python.

2) из ​​«процесса C++» запускает и управляет интерпретатором Python.

Python предоставляет API C для этого, и Boost.Python знает, как его использовать.

Смежные вопросы