Python memoryview() Function
The python memoryview() function returns a memoryview object of the given argument.
Before we come to the memoryview, we have to understand about Python's Buffer Protocol.
Buffer Protocol provides a way to access internal data of an object. This internal data is a memory array or a buffer. It allows one object to expose its internal data (buffers) and others to access those buffers without intermediate copying.
It is only accessible to us at C-API and not using our normal code base.
So, to expose the same protocol to normal python code base, memory views are present.
Memory View objects allow python code to access internal buffers of an object by creating a memory view object.
obj: It is an object whose internal data is to be processed. obj must support buffer protocol i.e. bytes , bytearray etc.
It returns a memoryview object of the given argument.
Python memoryview() Function Example 1
The below example shows the working of memoryview() function.
65 b'AB' [65, 66, 67]
Explanation: In the above example, we created a memory view object mv from the byte array randomByteArray.
Then, we access the mv's 0th index 'A' and print it (which gives the ASCII value - 65).
Again, we access the mv's indices from 0 and 1 ('AB') and, then converts them into bytes.
Finally, we accessed all indices of mv and converted it to a list. Since, internally bytearray stores ASCII value for the alphabets, the output is a list of ASCII values of A, B and C.
Python memoryview() Function Example 2
The below example shows how to modify internal data using memoryview().
Before updation: bytearray(b'ABC') After updation: bytearray(b'AZC')