2016-10-16 4 views
3

いつPython2.7でmemoryviewを使うべきですか?私はちょうどbytearrayにそれを使用することの利益を見つけることができません。またmemoryviewは文字列メソッドをサポートしていないため、絶対に使用できなくなっています。私が間違っている?Python MemoryviewとBytearray?

答えて

2

最後に、ネットワークソフトウェアで作業していますが、私はmemoryviewsのユースケースを見つけました:固定サイズのソケットバッファを持っていて、高速スライスしたいときは(w /メモリ内の余分なコピーを作成O)、このような何か:

buf = bytearray(4096) 
mview = memoryview(buf) 
socket.recv_into(mview) 
print mview[256:] 

ので、いくつかのケースでは、ByteArrayの上memoryviewを用意しておくと便利です。 このスキームで覚えておかなければならないのは、bytearrayでメモリビューを作成した後、このメモリビューを削除するまで、bytearrayのサイズを変更することはできません。bytearrayは初期サイズに制限され、BufferError: Existing exports of data: object cannot be re-sizedそこにデータを追加しようとするたびにエラーが発生します。