Нужен ли Boost.Python код привязки для других библиотек Boost?

У меня есть класс, который наследует от библиотеки Boost :: Statechart. Мне нужно использовать этот класс в скрипте Python, мне интересно, нужно ли мне писать коды-обертки (.def s) для всей библиотеки boost :: statechart только потому, что мой класс унаследован от него? Или boost.python не понадобится никакой код-обертка для просмотра определений (он автоматически обрабатывает другие библиотеки boost для вызова в python)?

5

Решение

Boost.Python не имеет специальной обработки для классов Boost. если ты хочу использовать Унаследованные функции (класс Boost или нет), вам нужно представить их Python, как вы бы сделали с вашим собственным кодом.

если ты не хочу использовать любую функцию базового класса из вашего скрипта, вам не нужно ничего делать, кроме привязки вашего собственного кода.

У вас есть два варианта, если вам нужен (некоторые из) интерфейс базового класса, доступный в Python:

  • Вы связываете базовый класс отдельно и выставляете его в качестве основы для вашего класса. Это наиболее «полное» решение (насколько оно полно — вы можете ограничить количество предоставляемых функций).
  • Вы не привязываете базовый класс. Python не должен знать об отношениях наследования. Вы можете просто связать функции, которые вы хотите представить, так как все публичные функции также являются членами производного класса. Это проще, если вам нужно только немного функциональности базового класса для использования из Python.
0

Другие решения

Других решений пока нет …