在模块源代码中,要创建新类,我必须使用下一个声明性样式构造:
class_<MyClass>("MyClass")
.def("my_method", &MyClass::my_method)
.def("my_second_method", &MyClass::my_second_method);
但是如果我需要在运行时创建类呢?例如模块函数将返回新类。我该怎么办?在
事实上,我需要动态地创建新类型。在我的例子中,这个类型修复了dictonaries和类型化数组。我需要这个来优化我现有的代码:开销问题。在我的项目中,使用了通过网络传输的数据类型。这是在运行时创建固定的DICT类的原因(每个类都将存储具有指定名称的单个字段,如C++中的结构,它是^ {< CD1})和类型化数组,其中包含元素类型和数组类型的数据。在
在python代码中如下所示:
^{pr2}$我想如果我用Python::Boost或/Python API创建C++的特性,那么我将用我的类型获得最大的加速。
我的问题是在运行时创建新的类(通过其他函数,例如this DeclareFixedDictonary
和DeclareTypedArray
)。在
按照文档使用Boost声明新的python类,我必须执行以下操作:
^{3}$但是这是module类,它们只能在我的模块中创建,而且我不能在另一个模块函数中使用class_
,这会导致错误。也许Boost有在运行时创建新类的API?可能是type
实例和动态填充属性。或者最好的方法是生成代码?但比Python中的反射系统更难。在
目前没有回答
相关问题 更多 >
编程相关推荐