gpt4 book ai didi

c++ - Boost.Python 是否需要其他 boost 库的绑定(bind)代码?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:51:09 26 4
gpt4 key购买 nike

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

最佳答案

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

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

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

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

关于c++ - Boost.Python 是否需要其他 boost 库的绑定(bind)代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21989561/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com