# Objetos de arreglos de bytes (bytearrays)

type PyByteArrayObject

  Este subtipo de `PyObject` representa un objeto arreglo de bytes de Python.

PyTypeObject PyByteArray_Type
  Part of the Stable ABI.

  Esta instancia de `PyTypeObject` representa el tipo arreglo de bytes de Python; es el mismo objeto que `bytearray` en la capa de Python.

## Macros de verificación de tipos

int PyByteArray_Check(PyObject *o)

  Retorna verdadero si el objeto o es un objeto de arreglo de bytes o una instancia de un subtipo del tipo arreglo de bytes. Esta función siempre finaliza con éxito.

int PyByteArray_CheckExact(PyObject *o)

  Retorna verdadero si el objeto o es un objeto de arreglo de bytes, pero no una instancia de un subtipo del tipo arreglo de bytes. Esta función siempre finaliza con éxito.

## Funciones API directas

PyObject *PyByteArray_FromObject(PyObject *o)
  Return value: New reference. Part of the Stable ABI.

  Retorna un nuevo objeto de arreglo de bytes de cualquier objeto, o, que implementa el buffer protocol.

PyObject *PyByteArray_FromStringAndSize(const char *string, Py_ssize_t len)
  Return value: New reference. Part of the Stable ABI.

  Crea un nuevo objeto de arreglo de bytes a partir de string y su longitud, len. En caso de fallo, se retorna `NULL`.

PyObject *PyByteArray_Concat(PyObject *a, PyObject *b)
  Return value: New reference. Part of the Stable ABI.

  Une los arreglos de bytes (bytearrays) a y b y retorna un nuevo arreglo de bytes (bytearray) con el resultado.

Py_ssize_t PyByteArray_Size(PyObject *bytearray)
  Part of the Stable ABI.

  Retorna el tamaño de bytearray después de buscar un puntero `NULL`.

char *PyByteArray_AsString(PyObject *bytearray)
  Part of the Stable ABI.

  Retorna el contenido de bytearray como un arreglo de caracteres después de verificar un puntero `NULL`. La arreglo retornado siempre tiene un byte nulo adicional agregado.

int PyByteArray_Resize(PyObject *bytearray, Py_ssize_t len)
  Part of the Stable ABI.

  Cambia el tamaño del búfer interno de bytearray a len.

## Macros

Estos macros intercambian seguridad por velocidad y no comprueban punteros.

char *PyByteArray_AS_STRING(PyObject *bytearray)

  Similar a `PyByteArray_AsString()`, pero sin comprobación de errores.

Py_ssize_t PyByteArray_GET_SIZE(PyObject *bytearray)

  Similar a `PyByteArray_Size()`, pero sin comprobación de errores.