PyBytes_FromString 返回 None 对象

问题描述

我想知道我是否可以得到一些帮助。假设我有以下函数来序列化一个对象:

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 是 None,我的控制台收到 Length of context: X

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)