问题描述
我是Python C-API的新手。
目前,我是通过
从嵌入式python模块中获取对象的PyObject* a = (PyObject*) PyObject_GetAttrString(pModule,"a");
std::cout << "a as long is " << PyLong_AsLong(a) << std::endl;
我通过
访问numpy对象PyArrayObject* array = (PyArrayObject*) PyObject_GetAttrString(pModule,"A");
如何测试对象是否真的是PyArrayObject
?换句话说,如何做我将通过isinstance(a,numpy.ndarray)
在Python中做的事情?
解决方法
使用PyArray_Check
或PyArray_CheckExact
。如果子类还可以,请使用PyArray_Check
;如果您需要类型完全为PyArray_CheckExact
的对象,请使用numpy.ndarray
。