Boost/Python:如何使用/转换提取的对象?

gab*_*ben 4 c++ python boost boost-python

假设:

using namespace boost::python;
void myClass::test(numeric::array& arrayParam) {
    const tuple &shape = extract<tuple>(arrayParam.attr("shape"));
}
Run Code Online (Sandbox Code Playgroud)

我想将它转换为int并打印例如.我试过int x = shape[0];但它给了我一个"无法将'boost :: python :: api :: const_object_item'转换为初始化'消息中的'int'.

int*_*jay 8

shape[0]给你一个Python对象.要将其转换为int另一种C++类型,您需要提取值:

int x = extract<int>(shape[0]);
Run Code Online (Sandbox Code Playgroud)