0

何か助けてもらえないだろうかと考えていました。オブジェクトをシリアル化する次の関数があるとします。

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 isNoneLength of context: X、コンソールにアクセスします

4

0 に答える 0