我有一个继承自 boost::statechart 库的类。我需要在 Python 脚本中使用这个类,我想知道我是否需要为所有 boost::statechart 库编写包装代码(.def s)只是因为我的类继承自它?或者 boost.python 不需要任何包装代码来查看定义(它会自动处理其他 boost 库以在 python 中调用)?
问问题
134 次
1 回答
0
Boost.Python 对 Boost 类没有任何特殊处理。如果您想使用继承的函数(无论是否为 Boost 类),您需要将它们暴露给 Python,就像您使用自己的代码一样。
如果您不想使用脚本中的任何基类函数,则除了绑定您自己的代码外,您无需执行任何操作。
如果您需要(某些)Python 提供的基类接口,您有两种选择:
- 您单独绑定基类并将其公开为您的类的基类。这是最“完整”的解决方案(尽可能完整 - 您可以选择限制公开函数的数量)。
- 您不绑定基类。Python 不必知道继承关系。您可以简单地绑定要公开的函数,因为所有公共函数也是派生类的成员。如果您只需要一些可从 Python 使用的基类功能,这会更简单。
于 2014-02-28T08:59:24.040 回答