# bytearray オブジェクト

type PyByteArrayObject

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

PyTypeObject PyByteArray_Type
  Part of the Stable ABI.

  この `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. Part of the Stable ABI.

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

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

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

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

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

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

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

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

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

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

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

## マクロ

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

char *PyByteArray_AS_STRING(PyObject *bytearray)

  `PyByteArray_AsString()` に似ていますが、エラーチェックを行いません。

Py_ssize_t PyByteArray_GET_SIZE(PyObject *bytearray)

  `PyByteArray_Size()` に似ていますが、エラーチェックを行いません。