Boost.Python是否需要为其他Boost库绑定代码
Does Boost.Python need binding code for other boost libraries?
我有一个从boost::statechart库继承的类。我需要在Python脚本中使用这个类,我想知道是否因为我的类继承了它就需要为所有boost::statechart库编写包装器代码(.defs)?或者boost.python将不需要任何包装器代码来查看定义(它会自动处理其他boost库以在python中调用)?
Boost.Python对Boost类没有任何特殊处理。如果想要使用继承的函数(是否为Boost类),则需要将它们公开给Python,就像使用自己的代码一样。
如果不想使用脚本中的任何基类函数,那么除了绑定自己的代码之外,不需要做任何事情。
如果您需要(部分)Python提供的基类接口,您有两个选项:
- 您单独绑定基类,并将其作为类的基类公开。这是最"完整"的解决方案(尽可能完整——您可以选择限制公开函数的数量)
- 您不绑定基类。Python不必知道继承关系。您可以简单地绑定要公开的函数,因为所有公共函数也是派生类的成员。如果您只需要一些基类功能就可以从Python中使用,那么这会更简单
相关文章:
- Boost 绑定和"result_type":不是成员,对 c++03 友好
- ROS 订阅回调 - 使用 boost::绑定成员函数
- 当Boost ::绑定模板函数时,模板参数扣除/替换失败
- 使用boost ::绑定结果作为参数
- boost ::绑定发送变量的回调args到回调函数
- 传递 boost::绑定参数作为参数
- boost::绑定在存储时不保存部分参数
- boost::绑定静态函数的参数
- 使用 boost :: 绑定将映射作为参数传递
- boost::与boost:asio绑定在一起.boost::绑定后续
- boost::与boost:asio绑定在一起.boost::绑定不起作用,从示例中复制
- Boost绑定和Boost函数,将带有参数的函数存储在向量中,然后执行它们
- boost::绑定具有默认值的成员函数
- boost::绑定到类成员函数
- boost::绑定重载函数
- boost绑定或返回常量的lambda函数
- boost::绑定内部副本
- boost::绑定模板化的函子
- 使用boost绑定成员函数
- boost::绑定动态参数