Документация Python неофициальный перевод
Содержание страницы

Объекты bytearrayByte Array Objects

type PyByteArrayObject

Этот подтип PyObject представляет объект bytearray Python.

PyTypeObject PyByteArray_Type
Часть Stable ABI.

Этот экземпляр PyTypeObject представляет тип bytearray в Python; он является тем же объектом, что и bytearray в слое Python.

Макросы проверки типаType check macros

int PyByteArray_Check(PyObject *o)

Возвращает true, если объект o является объектом bytearray или экземпляром подтипа типа bytearray. Эта функция всегда завершается успешно.

int PyByteArray_CheckExact(PyObject *o)

Возвращает true, если объект o является объектом bytearray, но не экземпляром подтипа типа bytearray. Эта функция всегда завершается успешно.

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

PyObject *PyByteArray_FromObject(PyObject *o)
Возвращаемое значение: новая ссылка. Часть Stable ABI. Потокобезопасность: Безопасно для одновременного использования на одном объекте.

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

При ошибке возвращает NULL с установленным исключением.

Примечание

Если объект реализует буферный протокол, то буфер не должен изменяться во время создания объекта байтового массива.

PyObject *PyByteArray_FromStringAndSize(const char *string, Py_ssize_t len)
Возвращаемое значение: новая ссылка. Часть стабильного ABI. Потокобезопасность: атомарно.

Создаёт новый объект bytearray из string и его длины, len.

При ошибке возвращает NULL с установленным исключением.

PyObject *PyByteArray_Concat(PyObject *a, PyObject *b)
Возвращаемое значение: новая ссылка. Часть Stable ABI. Потокобезопасность: Безопасно для одновременного использования на одном объекте.

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

При ошибке возвращает NULL с установленным исключением.

Примечание

Если объект реализует буферный протокол, то буфер не должен изменяться во время создания объекта байтового массива.

Py_ssize_t PyByteArray_Size(PyObject *bytearray)
Часть Stable ABI.Потокобезопасность: Атомарно.

Возвращает размер байтового массива после проверки указателя NULL.

char *PyByteArray_AsString(PyObject *bytearray)
Часть Stable ABI. Потокобезопасность: Безопасен для вызова из нескольких потоков только с внешней синхронизацией.

Возвращает содержимое байтового массива как массив char после проверки указателя NULL. Возвращаемый массив всегда содержит дополнительный нулевой байт в конце.

Примечание

Не является потокобезопасным изменять объект байтового массива при использовании возвращённого массива char.

int PyByteArray_Resize(PyObject *bytearray, Py_ssize_t len)
Часть Stable ABI.

Изменяет размер внутреннего буфера байтового массива до len. При ошибке возвращается -1 с установленным исключением.

Изменено в версии 3.14: Отрицательное значение len теперь приводит к установке исключения и возврату -1.

МакросыMacros

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

char *PyByteArray_AS_STRING(PyObject *bytearray)
Потокобезопасность: Безопасно вызывать из нескольких потоков только с внешней синхронизацией.

Аналогично PyByteArray_AsString(), но без проверки ошибок.

Примечание

Не является потокобезопасным изменять объект байтового массива при использовании возвращённого массива char.

Py_ssize_t PyByteArray_GET_SIZE(PyObject *bytearray)
Потокобезопасность: атомарно.

Аналогично PyByteArray_Size(), но без проверки ошибок.