私は 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 に型キャストする方法はありますか。
前もって感謝します !!!