الفرق بين المراجعتين ل"Python/array/buffer info"
ط (←القيمة المعادة) |
|||
سطر 11: | سطر 11: | ||
== القيمة المعادة == | == القيمة المعادة == | ||
− | يعيد التابع صفًّا بهيئة (عنوان، طول) يتضمّن الموقع الحالي في الذاكرة والطول بعدد العناصر في الذاكرة المؤقتة والمستخدمة لاستيعاب محتويات المصفوفة. يمكن حساب حجم الذاكرة المؤقتة بالبايتات بواسطة التعبير <code>array.buffer_info()[1] * array.itemsize</code>، وهذا مفيد في بعض الأحيان وخصوصًا عند العمل مع واجهات إدخال وإخراج ذات مستوى واطئ (وغير آمنة بطبيعة الحال) والتي تحتاج إلى عناوين في الذاكرة، مثل بعض عمليات ioctl(). تكون الأرقام المعادة صالحة ما دامت المصفوفة موجودة وما لم يُجرَ عليها أيّ عملية تؤدي إلى تغيير طولها. | + | يعيد التابع صفًّا بهيئة (عنوان، طول) يتضمّن الموقع الحالي في الذاكرة والطول بعدد العناصر في الذاكرة المؤقتة والمستخدمة لاستيعاب محتويات المصفوفة. يمكن حساب حجم الذاكرة المؤقتة بالبايتات بواسطة التعبير <code>array.buffer_info()[1] * array.itemsize</code>، وهذا مفيد في بعض الأحيان وخصوصًا عند العمل مع واجهات إدخال وإخراج ذات مستوى واطئ (وغير آمنة بطبيعة الحال) والتي تحتاج إلى عناوين في الذاكرة، مثل بعض عمليات <code>ioctl()</code>. تكون الأرقام المعادة صالحة ما دامت المصفوفة موجودة وما لم يُجرَ عليها أيّ عملية تؤدي إلى تغيير طولها. |
'''ملاحظة''': | '''ملاحظة''': |
المراجعة الحالية بتاريخ 07:08، 23 أغسطس 2018
يعيد التابع صفًّا بهيئة يتضمّن الموقع الحالي في الذاكرة والطول بعدد العناصر في الذاكرة المؤقتة buffer والمستخدمة لاستيعاب محتويات المصفوفة.
البنية العامة
array.buffer_info()
القيمة المعادة
يعيد التابع صفًّا بهيئة (عنوان، طول) يتضمّن الموقع الحالي في الذاكرة والطول بعدد العناصر في الذاكرة المؤقتة والمستخدمة لاستيعاب محتويات المصفوفة. يمكن حساب حجم الذاكرة المؤقتة بالبايتات بواسطة التعبير 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)