Pythonでメモリビューオブジェクトを取得するmemoryview関数の使い方です。(Pythonの標準関数です。)
メモリビューオブジェクトとは
メモリビューオブジェクトとは、変数をメモリとして参照するために使います。
bytes、bytearrayの内部データを参照したり書き換えたりすることが出来ます。
memoryview関数の使い方
memoryview(obj)
与えられたオブジェクト(obj)から作られた"メモリビュー オブジェクトを返します。
オブジェクトはbytes、bytearrayであることが前提です。
以下のとおり試してみます。
# 文字の前にbと記載することでbytes型として定義する
abc=b'abcdefghijklmnopqrstuvwxyz'
# メモリビューオブジェクト取得
mv=memoryview(abc)
# メモリオブジェクトをそのまま表示
print(mv)
# 1文字をコードのまま表示
print(mv[0])
# Unicode値を文字として表示
print(chr(mv[0]))
print(chr(mv[1]))
実行結果は以下のようになりました。
<memory at 0x000001BFF492D7C8>
97
a
b
メモリビューオブジェクトをそのまま表示すると、アドレスが表示されました。
文字を1文字のみコードのまま表示すると、97が表示されました。(これは'a'の文字コードです)
文字コードではわかりにくいので、chr関数によって文字として表示すると、1文字目が’a'、2文字目が'b'と表示されました。
bytes型の1文字目と2文字目が正しく表示されましたね。
メモリビューオブジェクトを使うことで、メモリ内を直接操作することができます。画像を格納して画像処理などにも使えそうですね。