memoryview() عرض الذاكرة
آخر تحديث: 2026-09-22
memoryview() عرض الذاكرة
تُرجع memoryview() عرضًا في الذاكرة لكائن (مثل bytes/bytearray)، ما يتيح الوصول إلى المخزن المؤقت الأساسي دون نسخ.
| التصنيف | الدوال المدمجة |
|---|---|
| النوع | دالة مدمجة |
| إصدار بايثون | all |
📝 الصياغة
memoryview(obj)
⚙️ المعاملات
| obj مطلوب | An object supporting the buffer protocol (e.g. bytes, bytearray). |
|---|
القيمة المُعادة:A memoryview object providing zero-copy access to the underlying buffer.
💥 الاستثناءات
TypeError— Raised when the object does not support the buffer protocol.
▶ مثال
عدّل الكود واضغط تشغيل لرؤية النتيجة في لوحة المخرجات:
المخرجات:
104 b'ell'
🏷️ دوال مدمجة ذات صلة
💡 حالات ذات صلة
المزيد من الحالات قادم قريباً — تابعونا.
❓ أسئلة شائعة
Qما فائدة memoryview؟
Aقراءة/معالجة بيانات بايتات دون نسخ البيانات الأساسية، مناسبة لسيناريوهات حساسة للأداء مثل الملفات الكبيرة وحزم الشبكات، متجنبة النسخ عند التقطيع.
Qبعد mv = memoryview(b'hello')، ما قيمة mv[0]؟
Aإنه 104 (عدد صحيح)، مثل bytes التي تُفهرس بالبايت؛ mv[1:4] تُرجع عرضًا، وللتحويل إلى bytes استخدم .tobytes().
Qما الفرق بين memoryview والشريحة العادية؟
Ab'hello'[1:4] تُنشئ bytes جديدة (نسخ البيانات)؛ بينما memoryview(b'hello')[1:4] عرض يشير إلى نفس المخزن الأساسي دون نسخ.
Qماذا يحدث عند الاستدعاء على كائن لا يدعم بروتوكول المخزن؟
Aيُثار TypeError؛ فقط الكائنات مثل bytes و bytearray و array.array تدعم بروتوكول المخزن.