【问题标题】:Does Boost.Python need binding code for other boost libraries?Boost.Python 是否需要其他 boost 库的绑定代码?
【发布时间】:2014-02-24 13:43:57
【问题描述】:

我有一个继承自 boost::statechart 库的类。我需要在 Python 脚本中使用这个类,我想知道我是否需要为所有 boost::statechart 库编写包装代码(.def s)只是因为我的类继承自它?或者 boost.python 不需要任何包装代码来查看定义(它会自动处理其他 boost 库以在 python 中调用)?

【问题讨论】:

    标签: c++ boost boost-python boost-statechart python-bindings


    【解决方案1】:

    Boost.Python 对 Boost 类没有任何特殊处理。如果您想要使用继承的函数(无论是否为 Boost 类),您需要将它们公开给 Python,就像使用您自己的代码一样。

    如果您不想使用脚本中的任何基类函数,则除了绑定自己的代码外,您无需执行任何操作。

    如果您需要(部分)Python 提供的基类接口,您有两种选择:

    • 您单独绑定基类并公开它as a base for your class。这是最“完整”的解决方案(尽可能完整 - 您可以选择限制公开函数的数量)。
    • 您没有绑定基类。 Python 不必知道继承关系。您可以简单地绑定要公开的函数,因为所有公共函数也是派生类的成员。如果您只需要 一些 可从 Python 使用的基类功能,这会更简单。

    【讨论】:

      猜你喜欢
      • 2014-09-08
      • 1970-01-01
      • 2019-12-18
      • 2013-06-03
      • 1970-01-01
      • 2011-09-06
      • 1970-01-01
      • 1970-01-01
      • 2013-09-09
      相关资源
      最近更新 更多