MemoryView 객체

memoryview 객체는 C 수준 버퍼 인터페이스를 다른 객체와 마찬가지로 전달될 수 있는 파이썬 객체로 노출합니다.

PyObject *PyMemoryView_FromObject(PyObject *obj)
Return value: New reference. Part of the Stable ABI.

버퍼 인터페이스를 제공하는 객체에서 memoryview 객체를 만듭니다. obj가 쓰기 가능한 버퍼 제공을 지원하면, memoryview 객체는 읽기/쓰기가 되고, 그렇지 않으면 읽기 전용이거나 제공자의 재량에 따라 읽기/쓰기가 될 수 있습니다.

PyBUF_READ

Flag to request a readonly buffer.

PyBUF_WRITE

Flag to request a writable buffer.

PyObject *PyMemoryView_FromMemory(char *mem, Py_ssize_t size, int flags)
Return value: New reference. Part of the Stable ABI since version 3.7.

mem를 하부 버퍼로 사용하여 memoryview 객체를 만듭니다. flagsPyBUF_READPyBUF_WRITE 중 하나일 수 있습니다.

Added in version 3.3.

PyObject *PyMemoryView_FromBuffer(const Py_buffer *view)
Return value: New reference. Part of the Stable ABI since version 3.11.

주어진 버퍼 구조체 view를 감싸는 memoryview 객체를 만듭니다. 간단한 바이트 버퍼의 경우는, PyMemoryView_FromMemory()가 선호되는 함수입니다.

PyObject *PyMemoryView_GetContiguous(PyObject *obj, int buffertype, char order)
Return value: New reference. Part of the Stable ABI.

버퍼 인터페이스를 정의하는 객체로부터 메모리의 연속 청크(‘C’ 나 ‘F’ortran order로)로 memoryview 객체를 만듭니다. 메모리가 연속적이면 memoryview 객체는 원래 메모리를 가리킵니다. 그렇지 않으면, 복사본이 만들어지고 memoryview는 새 바이트열 객체를 가리킵니다.

buffertype can be one of PyBUF_READ or PyBUF_WRITE.

int PyMemoryView_Check(PyObject *obj)

객체 obj가 memoryview 객체면 참을 반환합니다. 현재는 memoryview의 서브 클래스를 만들 수 없습니다. 이 함수는 항상 성공합니다.

Py_buffer *PyMemoryView_GET_BUFFER(PyObject *mview)

제공자 버퍼의 memoryview의 비공개 복사본의 포인터를 돌려줍니다. mview반드시 memoryview 인스턴스여야 합니다; 이 매크로는 형을 확인하지 않으므로 직접 검사해야 합니다, 그렇지 않으면 충돌 위험이 있습니다.

PyObject *PyMemoryView_GET_BASE(PyObject *mview)

memoryview가 기반으로 하는 제공자 객체에 대한 포인터나 memoryview가 PyMemoryView_FromMemory()PyMemoryView_FromBuffer() 함수 중 하나로 만들어졌으면 NULL을 반환합니다. mview반드시 memoryview 인스턴스여야 합니다.