如何在boost python中获取python对象的id。我希望有像
这样的东西boost::python::obj = ...;
int id = boost::python::id(obj);
答案 0 :(得分:2)
在Python documentation中,在CPython中,返回的值是对象的地址。所以,如果你在Boost Python中寻找类似的东西:
boost::python::api::object obj = ...;
long id = static_cast<long>(obj.ptr());
粗略地看一眼源头;内置的id
函数的实现(我正在看2.6.4)仅仅是:
static PyObject *
builtin_id(PyObject *self, PyObject *v)
{
return PyLong_FromVoidPtr(v);
}