1

私は python と boost::python が初めてで、私の無知を許してください。

私のコードには、 boost::python を介して行われる python - C++ 相互作用があります。C++ への Python 辞書参照を渡しています。

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' object has no attribute '_ contains _'

これは、 signal_dictionary->has_key(key) から来ています。boost::python は、 boost::python::dict であっても signal_dictionary を boost::python::function として読み取るようです。boost::python::dict に型キャストする方法はありますか。

前もって感謝します !!!

4

0 に答える 0