Boost.Python 对象的 id

发布于 2024-11-05 21:40:24 字数 136 浏览 1 评论 0原文

如何在 boost python 中获取 python 对象的 id?我希望有类似的东西

boost::python::obj = ...;
int id = boost::python::id(obj);

How do I get the id of a python object in boost python. I was hoping for something like

boost::python::obj = ...;
int id = boost::python::id(obj);

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

究竟谁懂我的在乎 2024-11-12 21:40:24

从Python文档来看,在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);
}

From the Python documentation, in CPython, the value returned is the address of the object. So, if you're looking for something similar in Boost Python:

boost::python::api::object obj = ...;
long id = static_cast<long>(obj.ptr());

A cursory glance in the source; the built-in id function's implementation (I'm looking at 2.6.4) is merely:

static PyObject *
builtin_id(PyObject *self, PyObject *v)
{
    return PyLong_FromVoidPtr(v);
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文