首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >返回Python-3中的原始内存

返回Python-3中的原始内存
EN

Stack Overflow用户
提问于 2019-09-04 15:08:25
回答 1查看 78关注 0票数 1

我正在用一个C库扩展Python,它返回一些内存。在一种情况下,调用方拥有内存,在第二种情况下,被调用者拥有内存(这两种情况都是读/写内存)。在Python 3中应该返回什么类型的对象?例如,我知道PyCapsule和内存视图。PyCapsules可以删除内存并接管所有权,但是在Python代码中可用的函数较少,而内存视图只是一个视图,不能接管所有权。你怎么做?

示例1

代码语言:javascript
复制
static PyObject *Foo(PyObject *self, PyObject *args, PyObject *keywords)
{
    void* mem = malloc(size);
    foo::FillMemory(mem, size);
    return ???(mem, size)?
}

示例2:

代码语言:javascript
复制
static PyObject *Bar(PyObject *self, PyObject *args, PyObject *keywords)
{
    size_t size;
    void* mem = foo::GetMemory(mem, &size);
    return ???(mem, size)?
}
EN

回答 1

Stack Overflow用户

发布于 2019-09-04 15:14:44

在Python代码中,理想情况下不对“某些内存”进行操作。通过特定于这些对象类型的成员对对象进行操作。所以两个人都没有。返回您自己的自定义类型,与任何成员--以及任何所有权语义--对特定类型都有意义。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57791242

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档