Pybind
Материал из ALL
Pybind — библиотека встраивания Python в язык программирования С++.
Он позволяет упростить вызов функций и методов из Python в С++ а так же наоборот, работать с классами С++ в Python как с внутренними.
Использовать Python через Pybind становиться очень просто
Рассмотрим просто пример:
у нас есть простой С++ класс «Bar»
С++ код |
---|
class Bar { public: void foo() { printf("foo"); } int min( int a, int b ) { return a < b ? a : b } } |
И мы хотим им воспользоваться в среде Python
Для этого нужно зарегистрировать класс, в этом нам поможет библиотека Pybind. Посмотрим как это будет выглядеть:
pybind::class_<Bar>("Bar") .def("foo", &Bar::foo) .def("min", &Bar::min) ;
мы только что зарегистрировали «Bar» и два метода к нему «foo» и «min».
Если мы сейчас в Python вызовем
b = Bar() b.foo() print b.min(1,2)
мы получим результат: foo, 1