Я новичок для повышения и одна из его библиотек, которые я не могу понять, это Boost.Python. Может ли кто-нибудь объяснить мне подробно, как эта совместимость достигнута? В документации есть всего несколько слов о метапрограммировании. P.S. Я пытался выглядеть кодом, но из-за моего отсутствия знаний на С ++ я не понимал принципов. Заранее спасибоКак работает boost :: python? Любые идеи о деталях реализации?
3
A
ответ
4
Там два способа: осуществление взаимодействия
1) от "процесса Python", функция вызова, написанной в C++.
У Python уже есть система для загрузки DLL, они называются «модулями расширения». Boost.Python может скомпилировать ваш источник для его создания. В основном вы пишете небольшую обертку, чтобы объявить функцию, вызываемую из Python, и «метапрограммирование» должно делать что-то вроде обнаружения того, какие типы выполняет C++-функция, и что она может исправить правильный код, чтобы преобразовать их из/в эквивалентные типы Python.
2) из «процесса C++» запускает и управляет интерпретатором Python.
Python предоставляет API C для этого, и Boost.Python знает, как его использовать.
Смежные вопросы
- 1. Jira python работает очень медленно, любые идеи о том, почему?
- 2. Любые идеи для реализации этой «функции»?
- 3. Любые идеи для реализации простого 2D-неба?
- 4. Любые идеи о том, как перевести OSQA?
- 5. Функция SQL Round не работает, любые идеи?
- 6. Любые идеи для диссертации?
- 7. Любые идеи о том, как встроить изображение в текстовый редактор?
- 8. Scala Puzzle: Любые идеи о том, как сделать эту работу?
- 9. Любые Элегантные Идеи о том, как разобрать этот Набор Данных?
- 10. SetThreadAffinityMask игнорируется .... любые идеи?
- 11. Любые идеи о том, как сделать эту функцию VBScript быстрее?
- 12. Любые идеи о том, почему os.system() может выйти из строя?
- 13. Любые идеи по оптимизации этого скрипта? (Python)
- 14. местоположение заголовка не работает, любые идеи?
- 15. Любые реализации XQueryX?
- 16. Mail() не работает, любые идеи почему?
- 17. ActiveRecord .new не работает, любые идеи почему?
- 18. Если утверждение не работает: любые идеи?
- 19. Если заявление не работает - любые идеи?
- 20. Любые идеи о том, как виджет «stickr» разработан на www.stickr.com
- 21. Любые идеи о том, как реализовать событие touchMoveOver в Javascript?
- 22. Любые идеи о том, как заставить мой Temp-конвертер работать?
- 23. Любые идеи о том, как быстро найти 2D-массив?
- 24. Любые идеи о том, как реализовать сетку в CSS? - CSS
- 25. Любые идеи о том, как обновить этот тип Captcha?
- 26. Любые идеи о том, как превратить определенные ячейки в абсолютные?
- 27. medialibrary.sqlitedb - любые идеи о том, как редактировать и просматривать?
- 28. Любые идеи о том, как удалить декоратор ES7?
- 29. Любые идеи о том, как ускорить этот запрос?
- 30. Любые идеи о том, как сделать редактирование на месте разлагаемым?
Вы всегда можете посмотреть код;) –
@OliCharlesworth Это не помогло. Мне нужно простое объяснение. – MainstreamDeveloper00
Реализация 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) содержит очень высокоуровневую информацию о том, что делает реализация. –