> **Источник:** https://python-all.ru/3.2/c-api/bytearray.html
>
> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.

---

# Объекты bytearray

**`PyByteArrayObject`**

Этот подтип [`PyObject`](https://python-all.ru/3.2/c-api/structures.html#PyObject) представляет объект bytearray в Python.

**[PyTypeObject](https://python-all.ru/3.2/c-api/type.html#PyTypeObject) `PyByteArray_Type`**

Этот экземпляр [`PyTypeObject`](https://python-all.ru/3.2/c-api/type.html#PyTypeObject) представляет тип bytearray в Python; это тот же объект, что и [`bytearray`](https://python-all.ru/3.2/library/functions.html#bytearray) в Python.

## Макросы проверки типа

#### `int PyByteArray_Check(PyObject *o)`

Возвращает true, если объект *o* является объектом bytearray или экземпляром подтипа типа bytearray.

#### `int PyByteArray_CheckExact(PyObject *o)`

Возвращает true, если объект *o* является объектом bytearray, но не экземпляром подтипа типа bytearray.

## Прямые функции API

#### `PyObject* PyByteArray_FromObject(PyObject *o)`

Возвращает новый объект bytearray из любого объекта *o*, реализующего протокол буфера.

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

Создаёт новый объект bytearray из *string* и его длины *len*. В случае ошибки возвращается *NULL*.

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

Объединяет байтовые массивы *a* и *b* и возвращает новый байтовый массив с результатом.

#### `Py_ssize_t PyByteArray_Size(PyObject *bytearray)`

Возвращает размер *bytearray* после проверки указателя на *NULL*.

#### `char* PyByteArray_AsString(PyObject *bytearray)`

Возвращает содержимое *bytearray* в виде массива char после проверки на нулевой указатель *NULL*.

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

Изменяет размер внутреннего буфера *bytearray* до *len*.

## Макросы

Эти макросы жертвуют безопасностью ради скорости и не проверяют указатели.

#### `char* PyByteArray_AS_STRING(PyObject *bytearray)`

Макроверсия [`PyByteArray_AsString()`](https://python-all.ru/3.2/c-api/bytearray.html#PyByteArray_AsString).

#### `Py_ssize_t PyByteArray_GET_SIZE(PyObject *bytearray)`

Макроверсия [`PyByteArray_Size()`](https://python-all.ru/3.2/c-api/bytearray.html#PyByteArray_Size).
