【发布时间】:2016-04-25 21:50:04
【问题描述】:
在 Boost Python 中,您可以像这样向 Python 公开 C++ 类:
object obj = class_<MyClass>("MyClass")
.def("SomeFunc", &MyClass::SomeFunc)
;
假设 MyClass 也有一个函数 SomeOtherFunc。以后有没有办法在 BOOST_PYTHON_MODULE 代码中将 SomeOtherFunc 暴露给 Python?我尝试使用返回的对象,但它没有属性 def。我还尝试再次实例化 MyClass 的公开,但这只是覆盖了第一个。基本上我正在寻找这样的东西:
obj.def("SomeOtherFunc", &MyClass::SomeOtherFunc)
我要解决的更大问题是,我有许多从模板化基类继承的类,我正试图找到一种方法以干净的方式将它们公开给 Python。到目前为止,我已经制作了一个模板函数,它接受类及其模板参数并构造必要的 class_ 调用,但我可能想稍后修改公开类的定义,所以我不知道该怎么做.
如果有人能准确解释“def”在做什么以及为什么我不需要在 def 之间使用逗号,则可以加分。
【问题讨论】: