التابع array.buffer_info()‎ في بايثون

من موسوعة حسوب
< Python‏ | array
مراجعة 20:39، 22 أغسطس 2018 بواسطة Mohammed Taher (نقاش | مساهمات) (أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE:التابع <code>array.buffer_info()‎</code> في بايثون}}</noinclude> يعيد التابع صفًّا بهيئة (عنوان، ط...')
(فرق) → مراجعة أقدم | المراجعة الحالية (فرق) | مراجعة أحدث ← (فرق)


يعيد التابع صفًّا بهيئة (عنوان، طول) يتضمّن الموقع الحالي في الذاكرة والطول بعدد العناصر في buffer والمستخدمة لاستيعاب محتويات المصفوفة.

البنية العامة

array.buffer_info()

القيمة المعادة

يعيد التابع صفًّا بهيئة (عنوان، طول) يتضمّن الموقع الحالي في الذاكرة والطول بعدد العناصر في buffer والمستخدمة لاستيعاب محتويات المصفوفة. يمكن حساب حجم الذاكرة المؤقتة بالبايتات بواسطة التعبير array.buffer_info()[1] * array.itemsize، وهذا مفيد في بعض الأحيان وخصوصًا عند العمل مع واجهات إدخال وإخراج ذات مستوى واطئ (وغير آمنة بطبيعة الحال) والتي تحتاج إلى عناوين في الذاكرة، مثل بعض عمليات ioctl()‎. تكون الأرقام المعادة صالحة ما دامت المصفوفة موجودة وما لم يُجرَ عليها أيّ عملية تؤدي إلى تغيير طولها.

ملاحظة:

من الأجدر عند استخدام كائنات array من أكواد مكتوبة بلغة C أو ‎C++‎ (وهي الطريقة الوحيدة الفعالة للاستفادة من هذه المعلومة) استخدام واجهة الذاكرة المؤقتة والمدعومة من قبل كائنات array. ولكن يجب الاعتماد على هذه الطريقة لأغراض التوافق مع الإصدارات القديمة، ويجب تجنبها في الشيفرات الجديدة.

أمثلة

يبين المثال التالي آلية عمل التابع:

>>> import array
>>> a = array.array('l', [1, 2, 3, 4, 5])
>>> a.buffer_info()
(140050559910696, 5)

انظر أيضًا

مصادر

صفحة Efficient arrays of numeric values في توثيق بايثون الرسمي.