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