我是 python 和 boost::python 的新手,请原谅我的无知。
我的代码有一个 python - C++ 交互,它是通过 boost::python 完成的。我将 python 字典引用传递给 C++:
C++ 代码:
boost::python::class_<ABC> ("ABC")
.def("set_input",&ABC::set_input)
;
struct ABC {
boost::python::dict* signal_dictionary ;
void insert_into_dict(int key,CellData cell_data) {
if (!signal_dictionary->has_key(key) {
signal_dictionary->operator[](key) = cell_data;
}
}
void set_input(boost::python::dict &signal_dict_t ) {
signal_dictionary = &signal_dict_t;
}
我的想法是将 python dict 的地址传递给 C++ 。在 C++ 中填充数据。并在完成填充后在 python 中访问它。函数 insert_into_dict 被间歇性地调用,它在字典中填充数据。但是我收到以下错误: AttributeError:'Boost.Python.function'对象没有属性'_包含_'
这来自: signal_dictionary->has_key(key) 。似乎 boost::python 将 signal_dictionary 读取为 boost::python::function 即使它是 boost::python::dict 。有什么方法可以将其类型转换为 boost::python::dict 。
提前致谢 !!!