字节数组对象 — Python 文档

来自菜鸟教程
Python/docs/3.9/c-api/bytearray
跳转至:导航、​搜索

字节数组对象

type PyByteArrayObject
PyObject 的这个子类型表示一个 Python 字节数组对象。
PyTypeObject PyByteArray_Type
PyTypeObject 的这个实例代表 Python 字节数组类型; 它与 Python 层中的 bytearray 是同一个对象。

类型检查宏

int PyByteArray_Check(PyObject *o)
如果对象 o 是 bytearray 对象或 bytearray 类型的子类型的实例,则返回 true。 此功能总是成功。
int PyByteArray_CheckExact(PyObject *o)
如果对象 o 是 bytearray 对象,但不是 bytearray 类型的子类型的实例,则返回 true。 此功能总是成功。


直接 API 函数

PyObject *PyByteArray_FromObject(PyObject *o)
从实现 缓冲区协议 的任何对象 o 返回一个新的字节数组对象。
PyObject *PyByteArray_FromStringAndSize(const char *string, Py_ssize_t len)
string 及其长度 len 创建一个新的字节数组对象。 失败时,返回 NULL
PyObject *PyByteArray_Concat(PyObject *a, PyObject *b)
连接字节数组 ab 并返回一个带有结果的新字节数组。
Py_ssize_t PyByteArray_Size(PyObject *bytearray)
检查 NULL 指针后返回 bytearray 的大小。
char *PyByteArray_AsString(PyObject *bytearray)
检查 NULL 指针后,将 bytearray 的内容作为字符数组返回。 返回的数组总是附加一个额外的空字节。
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() 的宏版本。