# Objetos de vista de memoria (MemoryView)

Un objeto `memoryview` expone la interfaz de búfer a nivel de C como un objeto Python que luego puede pasarse como cualquier otro objeto.

PyObject *PyMemoryView_FromObject(PyObject *obj)
  Return value: New reference. Part of the Stable ABI.

  Crea un objeto de vista de memoria memoryview a partir de un objeto que proporciona la interfaz del búfer. Si obj admite exportaciones de búfer de escritura, el objeto de vista de memoria será de lectura/escritura, de lo contrario puede ser de solo lectura o de lectura/escritura a discreción del exportador.

PyBUF_READ

  Flag to request a readonly buffer.

PyBUF_WRITE

  Flag to request a writable buffer.

PyObject *PyMemoryView_FromMemory(char *mem, Py_ssize_t size, int flags)
  Return value: New reference. Part of the Stable ABI since version 3.7.

  Crea un objeto de vista de memoria usando mem como el búfer subyacente. flags pueden ser uno de `PyBUF_READ` o `PyBUF_WRITE`.

  Added in version 3.3.

PyObject *PyMemoryView_FromBuffer(const Py_buffer *view)
  Return value: New reference. Part of the Stable ABI since version 3.11.

  Crea un objeto de vista de memoria que ajuste la estructura de búfer dada view. Para memorias intermedias de bytes simples, `PyMemoryView_FromMemory()` es la función preferida.

PyObject *PyMemoryView_GetContiguous(PyObject *obj, int buffertype, char order)
  Return value: New reference. Part of the Stable ABI.

  Crea un objeto de vista de memoria memoryview para un fragmento de memoria contiguo (contiguous, en order “C” o “F” de Fortran) desde un objeto que define la interfaz del búfer. Si la memoria es contigua, el objeto de vista de memoria apunta a la memoria original. De lo contrario, se realiza una copia y la vista de memoria apunta a un nuevo objeto de bytes.

  buffertype can be one of `PyBUF_READ` or `PyBUF_WRITE`.

int PyMemoryView_Check(PyObject *obj)

  Retorna verdadero si el objeto obj es un objeto de vista de memoria. Actualmente no está permitido crear subclases de `memoryview`. Esta función siempre finaliza con éxito.

Py_buffer *PyMemoryView_GET_BUFFER(PyObject *mview)

  Retorna un puntero a la copia privada de la vista de memoria del búfer del exportador. mview debe ser una instancia de memoryview; este macro no verifica su tipo, debe hacerlo usted mismo o correrá el riesgo de fallas.

PyObject *PyMemoryView_GET_BASE(PyObject *mview)

  Retorna un puntero al objeto de exportación en el que se basa la vista de memoria o `NULL` si la vista de memoria ha sido creada por una de las funciones `PyMemoryView_FromMemory()` o `PyMemoryView_FromBuffer()`. mview debe ser una instancia de memoryview.