Об’єкти MemoryView¶
Об’єкт memoryview
розкриває інтерфейс буфера рівня C як об’єкт Python, який потім можна передавати, як будь-який інший об’єкт.
-
PyObject *
PyMemoryView_FromObject
(PyObject *obj)¶ - Return value: New reference.
Створіть об’єкт memoryview з об’єкта, який забезпечує інтерфейс буфера. Якщо obj підтримує експорт буфера для запису, об’єкт memoryview буде читати/записувати, інакше він може бути або лише для читання, або для читання/запису на розсуд експортера.
-
PyObject *
PyMemoryView_FromMemory
(char *mem, Py_ssize_t size, int flags)¶ - Return value: New reference.
Створіть об’єкт memoryview, використовуючи mem як базовий буфер. flags може бути одним із
PyBUF_READ
абоPyBUF_WRITE
.Нове в версії 3.3.
-
PyObject *
PyMemoryView_FromBuffer
(Py_buffer *view)¶ - Return value: New reference.
Створіть об’єкт memoryview, що обгортає задану структуру буфера view. Для простих байтових буферів перевагою є функція
PyMemoryView_FromMemory()
.
-
PyObject *
PyMemoryView_GetContiguous
(PyObject *obj, int buffertype, char order)¶ - Return value: New reference.
Створіть об’єкт memoryview для contiguous фрагмента пам’яті (у порядку «C» або «F’ortran) з об’єкта, який визначає інтерфейс буфера. Якщо пам’ять є суміжною, об’єкт memoryview вказує на вихідну пам’ять. В іншому випадку буде зроблено копію, і memoryview вкаже на новий об’єкт bytes.
-
int
PyMemoryView_Check
(PyObject *obj)¶ Повертає true, якщо об’єкт obj є об’єктом memoryview. Наразі не можна створювати підкласи
memoryview
. Ця функція завжди успішна.
-
Py_buffer *
PyMemoryView_GET_BUFFER
(PyObject *mview)¶ Повертає вказівник на приватну копію буфера експортера для memoryview. mview має бути екземпляром memoryview; цей макрос не перевіряє свій тип, ви повинні зробити це самостійно, інакше ви ризикуєте збої.
-
Py_buffer *
PyMemoryView_GET_BASE
(PyObject *mview)¶ Повертає вказівник на об’єкт експорту, на якому базується memoryview, або
NULL
, якщо memoryview було створено однією з функційPyMemoryView_FromMemory()
абоPyMemoryView_FromBuffer()
. mview має бути екземпляром memoryview.