# Objek Byte Array

`PyByteArrayObject`

  Subtipe dari `PyObject` ini mewakili objek bytearray Python.

PyTypeObject `PyByteArray_Type`

  Instance dari `PyTypeObject` mewakili tipe bytearray Python; itu adalah objek yang sama dengan `bytearray` di lapisan Python.

## Makro cek tipe

int `PyByteArray_Check`(PyObject *o)

  Mengembalikan nilai true jika objek o adalah objek bytearray atau turunan dari subtipe tipe bytearray. Fungsi ini selalu berhasil.

int `PyByteArray_CheckExact`(PyObject *o)

  Mengembalikan nilai true jika objek o adalah objek bytearray, tetapi bukan turunan dari subtipe tipe bytearray. Fungsi ini selalu berhasil.

## Fungsi API langsung

PyObject* `PyByteArray_FromObject`(PyObject *o)
  Return value: New reference.

  Mengembalikan objek bytearray baru dari objek apa pun, o, yang mengimplementasikan buffer protocol.

PyObject* `PyByteArray_FromStringAndSize`(const char *string, Py_ssize_t len)
  Return value: New reference.

  Membuat objek bytearray baru dari string dan panjangnya, len. Jika gagal, `NULL` dikembalikan.

PyObject* `PyByteArray_Concat`(PyObject *a, PyObject *b)
  Return value: New reference.

  Menyatukan bytearrays a dan b dan mengembalikan bytearray baru dengan hasilnya.

Py_ssize_t `PyByteArray_Size`(PyObject *bytearray)

  Mengembalikan ukuran bytearray setelah memeriksa pointer `NULL`.

char* `PyByteArray_AsString`(PyObject *bytearray)

  Mengembalikan konten bytearray sebagai array karakter setelah memeriksa pointer `NULL`. Array yang dikembalikan selalu memiliki byte null ekstra yang ditambahkan.

int `PyByteArray_Resize`(PyObject *bytearray, Py_ssize_t len)

  Mengubah ukuran buffer internal bytearray menjadi len.

## Makro

Makro ini menukar keamanan dengan kecepatan dan tidak memeriksa pointer.

char* `PyByteArray_AS_STRING`(PyObject *bytearray)

  Versi makro dari `PyByteArray_AsString()`.

Py_ssize_t `PyByteArray_GET_SIZE`(PyObject *bytearray)

  Versi makro dari `PyByteArray_Size()`.