小编use*_*759的帖子

什么是Python asyncio.Lock()?

是因为协程可能会在未来被抢占吗?或者它允许人们使用关键部分的收益率(不应该鼓励IMO)?

python python-asyncio

17
推荐指数
2
解决办法
1万
查看次数

python c-api:使用现有缓冲区创建字节而不复制

在我看来,缓冲区协议更像是将 Python 缓冲区暴露给 C。

我找不到使用现有缓冲区创建字节对象的方法,而无需在 C 中进行复制。

基本上我想要的是实现类似于 PyBytes_FromStringAndSize() 但不复制的东西,并在对象被释放时使用回调来释放缓冲区。在收到从 C API 返回的缓冲区之前,我不知道缓冲区有多大。所以先在 Python 中创建 bytes 对象然后再填充它不是一种选择。

我还查看了 memoryview,PyMemoryView_FromMemory() 不会复制,但无法通过回调来释放我的缓冲区。而且我不是 suse Python lib(例如 Psycopg)是否可以使用 memoryview 对象。

我是否必须创建自己的对象才能实现这两个要求?还有什么捷径吗?

如果必须,我如何确保这个对象与字节一样工作,以便我可以安全地将它传递给 Python lib?

谢谢。

python-c-api python-c-extension python-3.x

7
推荐指数
1
解决办法
376
查看次数