Boost.Python对象的id

时间:2011-05-10 01:03:39

标签: python boost-python

如何在boost python中获取python对象的id。我希望有像

这样的东西
boost::python::obj = ...;
int id = boost::python::id(obj);

1 个答案:

答案 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);
}