اشیاء MemoryView¶
شیء memoryview رابط بافر سطح C را بهصورت یک شیء پایتون در دسترس قرار میدهد که سپس میتوان آن را مانند هر شیء دیگری منتقل کرد.
-
PyTypeObject PyMemoryView_Type¶
- قسمتی از ABI پایدار.
این نمونه از
PyTypeObjectنوع memoryview پایتون را نمایش میدهد. این همان شیءmemoryviewدر لایهی پایتون است.
-
PyObject *PyMemoryView_FromObject(PyObject *obj)¶
- مقدار بازگشتی: مرجع جدید. قسمتی از ABI پایدار.
یک شیء memoryview از شیئی که رابط بافر را فراهم میکند ایجاد میکند. اگر obj از اکسپورت (export) بافرهای نوشتنی پشتیبانی کند، شیء memoryview خواندنی/نوشتنی خواهد بود؛ در غیر این صورت، ممکن است به تشخیص بروندهنده (exporter)، فقطخواندنی یا خواندنی/نوشتنی باشد.
-
PyBUF_READ¶
- قسمتی از ABI پایدار از نسخهی 3.11.
پرچمی برای درخواست بافر فقطخواندنی.
-
PyBUF_WRITE¶
- قسمتی از ABI پایدار از نسخهی 3.11.
پرچم برای درخواست بافر نوشتنی.
-
PyObject *PyMemoryView_FromMemory(char *mem, Py_ssize_t size, int flags)¶
- مقدار بازگشتی: مرجع جدید. قسمتی از ABI پایدار از نسخهی 3.7.
یک شیء memoryview با استفاده از mem بهعنوان بافر زیربنایی ایجاد میکند. flags میتواند یکی از
PyBUF_READیاPyBUF_WRITEباشد.اضافه شده در نسخهی 3.3.
-
PyObject *PyMemoryView_FromBuffer(const Py_buffer *view)¶
- مقدار بازگشتی: مرجع جدید. قسمتی از ABI پایدار از نسخهی 3.11.
یک شیء memoryview میسازد که ساختار بافر دادهشده view را دربرمیگیرد. برای بافرهای بایت ساده،
PyMemoryView_FromMemory()تابع ترجیحی است.
-
PyObject *PyMemoryView_GetContiguous(PyObject *obj, int buffertype, char order)¶
- مقدار بازگشتی: مرجع جدید. قسمتی از ABI پایدار.
یک شیء memoryview روی یک تکهی پیوسته از حافظه (به ترتیب 'C' یا 'F'ortran) از شیئی که رابط بافر را تعریف میکند، ایجاد میکند. اگر حافظه پیوسته باشد، شیء memoryview به حافظهی اصلی اشاره میکند. در غیر این صورت، یک رونوشت ساخته میشود و memoryview به یک شیء bytes جدید اشاره میکند.
buffertype میتواند یکی از
PyBUF_READیاPyBUF_WRITEباشد.
-
int PyMemoryView_Check(PyObject *obj)¶
اگر شیء obj یک شیء memoryview باشد، مقدار true را برمیگرداند. در حال حاضر ایجاد زیرکلاسهای
memoryviewمجاز نیست. این تابع همیشه با موفقیت اجرا میشود.
-
Py_buffer *PyMemoryView_GET_BUFFER(PyObject *mview)¶
اشارهگری به رونوشت خصوصی memoryview از بافر اکسپورتکننده را برمیگرداند. mview باید یک نمونهی memoryview باشد؛ این ماکرو نوع آن را بررسی نمیکند، باید خودتان این کار را انجام دهید وگرنه خود را در معرض خطر فروپاشی قرار میدهید.
-
PyObject *PyMemoryView_GET_BASE(PyObject *mview)¶
اشارهگری به شیء اکسپورتکنندهای (exporting object) که memoryview بر پایهی آن است را برمیگرداند، یا اگر memoryview توسط یکی از توابع
PyMemoryView_FromMemory()یاPyMemoryView_FromBuffer()ایجاد شده باشد،NULLرا برمیگرداند. mview باید یک نمونه از memoryview باشد.