# 字节数组对象

2.6 新版功能.

`PyByteArrayObject`

  这个 `PyObject` 的子类型表示一个 Python 字节数组对象。

PyTypeObject `PyByteArray_Type`

  This instance of `PyTypeObject` represents the Python bytearray type; it is the same object as `bytearray` in the Python layer.

## 类型检查宏

int `PyByteArray_Check`(PyObject *o)

  当对象 o 是一个字节数组对象而且是一个字节数组类型的子类型实例时，返回真。

int `PyByteArray_CheckExact`(PyObject *o)

  当对象 o 是一个字节数组对象，但不是一个字节数组类型的子类型实例时，返回真。

## 直接 API 函数

PyObject* `PyByteArray_FromObject`(PyObject *o)

  Return a new bytearray object from any object, o, that implements the buffer protocol.

PyObject* `PyByteArray_FromStringAndSize`(const char *string, Py_ssize_t len)

  Create a new bytearray object from string and its length, len. On failure, NULL is returned.

PyObject* `PyByteArray_Concat`(PyObject *a, PyObject *b)

  连接字节数组 a 和 b 并返回一个带有结果的新的字节数组。

Py_ssize_t `PyByteArray_Size`(PyObject *bytearray)

  Return the size of bytearray after checking for a NULL pointer.

char* `PyByteArray_AsString`(PyObject *bytearray)

  Return the contents of bytearray as a char array after checking for a NULL pointer.

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

  将 bytearray 的内部缓冲区的大小调整为 len。

## 宏

这些宏减低安全性以换取性能，它们不检查指针。

char* `PyByteArray_AS_STRING`(PyObject *bytearray)

  C函数 `PyByteArray_AsString()` 的宏版本。

Py_ssize_t `PyByteArray_GET_SIZE`(PyObject *bytearray)

  C函数 `PyByteArray_Size()` 的宏版本。