Pybind

Материал из ALL
Версия от 20:56, 11 марта 2016; Ws (обсуждение | вклад) (архив)

(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

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