我是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 ++填充数据。当enitre人口完成时,在python中访问它。 函数insert_into_dict是间歇性调用的,它会填充dict中的数据。 但我得到以下错误: AttributeError:'Boost.Python.function'对象没有属性'_ 包含 _'
这来自:signal_dictionary-&gt; has_key(key)。 似乎boost :: python读取signal_dictionary为boost :: python :: function,即使它是一个boost :: python :: dict。 有什么方法可以将它强制转换为boost :: python :: dict。
提前致谢!!!