memoryview() メモリビュー
最終更新:2026-09-22
memoryview() メモリビュー
memoryview() はオブジェクト(bytes/bytearray など)のメモリビューを返し、基盤となるバッファにゼロコピーでアクセスできる。
| カテゴリ | 組み込み関数 |
|---|---|
| 種類 | 組み込み関数 |
| Python バージョン | all |
📝 構文
memoryview(obj)
⚙️ 引数
| obj 必須 | An object supporting the buffer protocol (e.g. bytes, bytearray). |
|---|
戻り値:A memoryview object providing zero-copy access to the underlying buffer.
💥 例外
TypeError— Raised when the object does not support the buffer protocol.
▶ 例
下のコードを編集し「実行」をクリックすると、出力パネルに結果が表示されます:
実行結果:
104 b'ell'
🏷️ 関連する組み込み関数
💡 関連するケース
さらに多くのケースは近日公開予定です。
❓ よくある質問
Qmemoryview は何に使いますか?
A基礎となるデータをコピーせずにバイトデータを読み書きします。大ファイルやネットワークパケットなど性能重視の場面に適しており、スライス時のコピーを避けます。
Qmv = memoryview(b'hello') の後、mv[0] は何ですか?
A104(整数)です。bytes と同じくバイト単位でインデックスします。mv[1:4] はビューを返します。bytes に戻すには .tobytes() を使います。
Qmemoryview と普通のスライスの違いは何ですか?
Ab'hello'[1:4] は新しい bytes を作成します(データをコピー)。memoryview(b'hello')[1:4] は同じ基礎バッファを指すビューで、コピーしません。
Qバッファプロトコルをサポートしないオブジェクトに呼ぶとどうなりますか?
ATypeError になります。bytes、bytearray、array.array などバッファプロトコルをサポートするオブジェクトだけが使えます。