在加速Python,可以暴露C++类到Python这样的:在事实之后将成员函数添加到Boost Python类中?
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_call,但是我可能希望稍后修改暴露的类的定义,所以我不知道该怎么做。
如果某人能够准确解释“def”正在做什么以及为什么我不需要逗号之间的逗号,那么可以获得奖励积分。
啊,水的部分和底部是清晰的!谢谢你的解释。其实我早就尝试过使用auto,但它对我来说并不适用。回想起来,我现在意识到我正在用我的函数的输出使用它,它返回了一个“对象”,难怪它没有奏效。我觉得我现在对Boost Python有了更清晰的理解,谢谢! – Nickolai