2
如何获取boost python中的python对象的id。我希望这样的事情对象的Boost.Python ID
boost::python::obj = ...;
int id = boost::python::id(obj);
如何获取boost python中的python对象的id。我希望这样的事情对象的Boost.Python ID
boost::python::obj = ...;
int id = boost::python::id(obj);
从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);
}
谢谢,这对我来说已经够用了。我只需要一些我可以快速加密的东西,并且可以散列'ptr()'。 – 2011-05-10 02:02:59