引用从python传递到boost :: python并返回python

时间:2013-10-22 05:57:51

标签: c++ python boost

我是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。

提前致谢!!!

0 个答案:

没有答案