bytearray オブジェクト

type PyByteArrayObject

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

PyByteArrayObject の内部バッファには、ヌル終端の C 文字列との互換性のため、末尾に余分なヌルバイトが常に含まれます。 このバイトは PyByteArray_Size() の戻り値にも、以下の関数の len 引数にも含めません。

PyTypeObject PyByteArray_Type
次に属します: 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)
戻り値: 新しい参照。 次に属します: Stable ABI. Thread safety: Safe for concurrent use on the same object.

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

失敗した場合は、例外を設定して NULL を返します。

注釈

オブジェクトがバッファプロトコルを実装している場合、bytearray オブジェクトの作成中にバッファを変更してはいけません。

PyObject *PyByteArray_FromStringAndSize(const char *string, Py_ssize_t len)
戻り値: 新しい参照。 次に属します: Stable ABI. Thread safety: Atomic.

string とその長さ len から新しい bytearray オブジェクトを作成します。

失敗した場合は、例外を設定して NULL を返します。

PyObject *PyByteArray_Concat(PyObject *a, PyObject *b)
戻り値: 新しい参照。 次に属します: Stable ABI. Thread safety: Safe for concurrent use on the same object.

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

失敗した場合は、例外を設定して NULL を返します。

注釈

オブジェクトがバッファプロトコルを実装している場合、bytearray オブジェクトの作成中にバッファを変更してはいけません。

Py_ssize_t PyByteArray_Size(PyObject *bytearray)
次に属します: Stable ABI. Thread safety: Atomic.

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

char *PyByteArray_AsString(PyObject *bytearray)
次に属します: Stable ABI. Thread safety: Safe to call from multiple threads with external synchronization only.

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

注釈

返された char 配列の使用中に bytearray オブジェクトを変更する操作はスレッドセーフではありません。

int PyByteArray_Resize(PyObject *bytearray, Py_ssize_t len)
次に属します: Stable ABI.

bytearray の内部バッファのサイズを len に変更します。 失敗した場合は、例外を設定して -1 を返します。

バージョン 3.14 で変更: len が負の場合は、例外を設定して -1 を返すようになりました。

マクロ

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

char *PyByteArray_AS_STRING(PyObject *bytearray)
Thread safety: Safe to call from multiple threads with external synchronization only.

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

注釈

返された char 配列の使用中に bytearray オブジェクトを変更する操作はスレッドセーフではありません。

Py_ssize_t PyByteArray_GET_SIZE(PyObject *bytearray)
Thread safety: Atomic.

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