# bytearray オブジェクト

`PyByteArrayObject`

  この `PyObject` のサブタイプは Python の bytearray オブジェクトを表します。

PyTypeObject `PyByteArray_Type`

  この `PyTypeObject` のインスタンスは、 Python bytearray 型を示します。 Python レイヤでの `bytearray` と同じオブジェクトです。

## 型チェックマクロ

int `PyByteArray_Check`(PyObject *o)

  オブジェクト o が bytearray オブジェクトか bytearray 型のサブタイプのインスタンスである場合に真を返します。この関数は常に成功します。

int `PyByteArray_CheckExact`(PyObject *o)

  オブジェクト o が bytearray オブジェクトだが bytearray 型のサブタイプのインスタンスでない場合に真を返します。この関数は常に成功します。

## ダイレクト API 関数

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

  buffer protocol を実装した任意のオブジェクト o から、新しいbytearrayオブジェクトを作成し、返します。

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

  string とその長さ len から新しい bytearray オブジェクトを返します。失敗した場合は `NULL` を返します。

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

  bytearray a と b を連結した結果を新しい bytearray として返します。

Py_ssize_t `PyByteArray_Size`(PyObject *bytearray)

  `NULL` ポインタチェックの後に bytearray のサイズを返します。

char* `PyByteArray_AsString`(PyObject *bytearray)

  `NULL` ポインタチェックの後に bytearray の内容を char 配列として返します。 返される配列には、常に余分な null バイトが追加されます。

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

  bytearray の内部バッファを len へリサイズします。

## マクロ

以下のマクロは、ポインタのチェックをしないことにより安全性を犠牲にしてスピードを優先しています。

char* `PyByteArray_AS_STRING`(PyObject *bytearray)

  `PyByteArray_AsString()` のマクロバージョン。

Py_ssize_t `PyByteArray_GET_SIZE`(PyObject *bytearray)

  `PyByteArray_Size()` のマクロバージョン。