何か助けてもらえないだろうかと考えていました。オブジェクトをシリアル化する次の関数があるとします。
PyObject * CKKSwrapper::SerializeContext() {
std::string s;
std::ostringstream os(s);
Serial::Serialize(m_cc, os, SerType::BINARY);
const std::string tmp = os.str();
const char *msg = tmp.c_str();
std::cout << "Length of context: " << tmp.length() << "\n";
return PyBytes_FromString(msg);
}
Boost
モジュールファイルには
BOOST_PYTHON_MODULE (pycrypto) {
class_<pycrypto::CKKSwrapper>("CKKSwrapper")
.def("SerializeContext", &pycrypto::CKKSwrapper::SerializeContext,
return_value_policy<manage_new_object>());
オブジェクトを管理している場所。
ただし、Python でメソッドを呼び出すと、None オブジェクトが取得され、出力は次のようになります。
import pycrypto
a = pycrypto.SerializeContext()
a isNone
でLength of context: X
、コンソールにアクセスします