MemoryView ਆਬਜੈਕਟ

ਇੱਕ memoryview ਆਬਜੈਕਟ C ਪੱਧਰ ਦੇ buffer interface ਨੂੰ ਇੱਕ Python ਆਬਜੈਕਟ ਵਜੋਂ ਉਪਲਬਧ ਕਰਵਾਉਂਦਾ ਹੈ, ਜਿਸ ਨੂੰ ਫਿਰ ਕਿਸੇ ਹੋਰ ਆਬਜੈਕਟ ਵਾਂਗ ਵਰਤਿਆ ਅਤੇ ਪਾਸ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ।

PyTypeObject PyMemoryView_Type
Part of the Stable ABI.

PyTypeObject ਦਾ ਇਹ ਇੰਸਟੈਂਸ Python ਦੇ memoryview ਕਿਸਮ ਨੂੰ ਦਰਸਾਉਂਦਾ ਹੈ। ਇਹ Python ਲੇਅਰ ਵਿੱਚ memoryview ਵਾਲਾ ਹੀ ਆਬਜੈਕਟ ਹੈ।

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

ਉਸ ਆਬਜੈਕਟ ਤੋਂ ਇੱਕ memoryview ਆਬਜੈਕਟ ਬਣਾਓ ਜੋ buffer interface ਪ੍ਰਦਾਨ ਕਰਦਾ ਹੈ। ਜੇ obj ਲਿਖਣਯੋਗ buffer export ਦਾ ਸਮਰਥਨ ਕਰਦਾ ਹੈ, ਤਾਂ memoryview ਆਬਜੈਕਟ ਪੜ੍ਹਨ/ਲਿਖਣਯੋਗ ਹੋਵੇਗਾ। ਨਹੀਂ ਤਾਂ, ਇਹ exporter ਦੇ ਫ਼ੈਸਲੇ ਅਨੁਸਾਰ ਸਿਰਫ਼-ਪੜ੍ਹਨਯੋਗ ਜਾਂ ਪੜ੍ਹਨ/ਲਿਖਣਯੋਗ ਹੋ ਸਕਦਾ ਹੈ।

PyBUF_READ
Part of the Stable ABI since version 3.11.

ਸਿਰਫ਼-ਪੜ੍ਹਨਯੋਗ ਬਫ਼ਰ ਦੀ ਬੇਨਤੀ ਕਰਨ ਲਈ ਫਲੈਗ।

PyBUF_WRITE
Part of the Stable ABI since version 3.11.

ਲਿਖਣਯੋਗ ਬਫ਼ਰ ਦੀ ਬੇਨਤੀ ਕਰਨ ਲਈ ਫਲੈਗ।

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 ਆਬਜੈਕਟ ਬਣਾਓ। flags PyBUF_READ ਜਾਂ PyBUF_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.

buffer interface ਨੂੰ ਪਰਿਭਾਸ਼ਿਤ ਕਰਨ ਵਾਲੇ ਆਬਜੈਕਟ ਤੋਂ contiguous ਮੈਮੋਰੀ ਦੇ ਇੱਕ ਹਿੱਸੇ (ਜਾਂ ਤਾਂ 'C' ਜਾਂ 'F'ortran order ਵਿੱਚ) ਲਈ ਇੱਕ memoryview ਆਬਜੈਕਟ ਬਣਾਓ। ਜੇ ਮੈਮੋਰੀ contiguous ਹੈ, ਤਾਂ memoryview ਆਬਜੈਕਟ ਮੂਲ ਮੈਮੋਰੀ ਵੱਲ ਇਸ਼ਾਰਾ ਕਰਦਾ ਹੈ। ਨਹੀਂ ਤਾਂ, ਇੱਕ ਕਾਪੀ ਬਣਾਈ ਜਾਂਦੀ ਹੈ ਅਤੇ memoryview ਇੱਕ ਨਵੇਂ bytes ਆਬਜੈਕਟ ਵੱਲ ਇਸ਼ਾਰਾ ਕਰਦਾ ਹੈ।

buffertype PyBUF_READ ਜਾਂ PyBUF_WRITE ਵਿੱਚੋਂ ਇੱਕ ਹੋ ਸਕਦਾ ਹੈ।

int PyMemoryView_Check(PyObject *obj)

ਜੇ ਆਬਜੈਕਟ obj ਇੱਕ memoryview ਆਬਜੈਕਟ ਹੈ ਤਾਂ true ਵਾਪਸ ਕਰੋ। ਇਸ ਵੇਲੇ memoryview ਦੀਆਂ ਉਪ-ਕਿਸਮਾਂ ਬਣਾਉਣ ਦੀ ਇਜਾਜ਼ਤ ਨਹੀਂ ਹੈ। ਇਹ ਫੰਕਸ਼ਨ ਹਮੇਸ਼ਾਂ ਸਫਲ ਹੁੰਦਾ ਹੈ।

Py_buffer *PyMemoryView_GET_BUFFER(PyObject *mview)

memoryview ਦੀ exporter ਦੇ ਬਫ਼ਰ ਦੀ ਨਿੱਜੀ ਕਾਪੀ ਲਈ ਇੱਕ ਪੁਆਇੰਟਰ ਵਾਪਸ ਕਰੋ। mview ਲਾਜ਼ਮੀ ਤੌਰ 'ਤੇ ਇੱਕ memoryview ਇੰਸਟੈਂਸ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ; ਇਹ ਮੈਕਰੋ ਇਸ ਦੀ ਕਿਸਮ ਦੀ ਜਾਂਚ ਨਹੀਂ ਕਰਦਾ, ਇਸ ਲਈ ਤੁਹਾਨੂੰ ਖੁਦ ਜਾਂਚ ਕਰਨੀ ਪਵੇਗੀ, ਨਹੀਂ ਤਾਂ ਪ੍ਰੋਗਰਾਮ ਕਰੈਸ਼ ਹੋ ਸਕਦਾ ਹੈ।

PyObject *PyMemoryView_GET_BASE(PyObject *mview)

ਉਸ exporting ਆਬਜੈਕਟ ਲਈ ਇੱਕ ਪੁਆਇੰਟਰ ਵਾਪਸ ਕਰੋ ਜਿਸ 'ਤੇ memoryview ਆਧਾਰਿਤ ਹੈ, ਜਾਂ NULL ਵਾਪਸ ਕਰੋ ਜੇ memoryview ਨੂੰ PyMemoryView_FromMemory() ਜਾਂ PyMemoryView_FromBuffer() ਵਿੱਚੋਂ ਕਿਸੇ ਇੱਕ ਫੰਕਸ਼ਨ ਦੁਆਰਾ ਬਣਾਇਆ ਗਿਆ ਹੈ। mview ਲਾਜ਼ਮੀ ਤੌਰ 'ਤੇ ਇੱਕ memoryview ਇੰਸਟੈਂਸ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ।