الفرق بين المراجعتين لصفحة: «Python/array/buffer info»
أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE:التابع <code>array.buffer_info()</code> في بايثون}}</noinclude> يعيد التابع صفًّا بهيئة (عنوان، ط...' |
|||
(1 مراجعات متوسطة بواسطة نفس المستخدم غير معروضة) | |||
سطر 1: | سطر 1: | ||
<noinclude>{{DISPLAYTITLE:التابع <code>array.buffer_info()</code> في بايثون}}</noinclude> | <noinclude>{{DISPLAYTITLE:التابع <code>array.buffer_info()</code> في بايثون}}</noinclude> | ||
يعيد التابع صفًّا بهيئة | يعيد التابع صفًّا بهيئة يتضمّن الموقع الحالي في الذاكرة والطول بعدد العناصر في الذاكرة المؤقتة buffer والمستخدمة لاستيعاب محتويات المصفوفة. | ||
== البنية العامة == | == البنية العامة == | ||
سطر 11: | سطر 11: | ||
== القيمة المعادة == | == القيمة المعادة == | ||
يعيد التابع صفًّا بهيئة (عنوان، طول) يتضمّن الموقع الحالي في الذاكرة والطول بعدد العناصر في | يعيد التابع صفًّا بهيئة (عنوان، طول) يتضمّن الموقع الحالي في الذاكرة والطول بعدد العناصر في الذاكرة المؤقتة والمستخدمة لاستيعاب محتويات المصفوفة. يمكن حساب حجم الذاكرة المؤقتة بالبايتات بواسطة التعبير <code>array.buffer_info()[1] * array.itemsize</code>، وهذا مفيد في بعض الأحيان وخصوصًا عند العمل مع واجهات إدخال وإخراج ذات مستوى واطئ (وغير آمنة بطبيعة الحال) والتي تحتاج إلى عناوين في الذاكرة، مثل بعض عمليات <code>ioctl()</code>. تكون الأرقام المعادة صالحة ما دامت المصفوفة موجودة وما لم يُجرَ عليها أيّ عملية تؤدي إلى تغيير طولها. | ||
'''ملاحظة''': | '''ملاحظة''': | ||
من الأجدر عند استخدام كائنات array من أكواد مكتوبة بلغة C أو C++ (وهي الطريقة الوحيدة الفعالة للاستفادة من هذه المعلومة) استخدام واجهة الذاكرة المؤقتة والمدعومة من قبل كائنات array. ولكن يجب الاعتماد على هذه الطريقة لأغراض التوافق مع الإصدارات القديمة، ويجب تجنبها في الشيفرات الجديدة. | من الأجدر عند استخدام كائنات <code>array</code> من أكواد مكتوبة بلغة C أو C++ (وهي الطريقة الوحيدة الفعالة للاستفادة من هذه المعلومة) استخدام واجهة الذاكرة المؤقتة والمدعومة من قبل كائنات <code>array</code>. ولكن يجب الاعتماد على هذه الطريقة لأغراض التوافق مع الإصدارات القديمة، ويجب تجنبها في الشيفرات الجديدة. | ||
== أمثلة == | == أمثلة == | ||
سطر 28: | سطر 28: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== مصادر == | == مصادر == | ||
[https://docs.python.org/3/library/array.html#array.buffer_info صفحة Efficient arrays of numeric values في توثيق بايثون الرسمي.] | * [https://docs.python.org/3/library/array.html#array.buffer_info صفحة Efficient arrays of numeric values في توثيق بايثون الرسمي.] | ||
[[تصنيف:Python]] | [[تصنيف:Python]] | ||
[[تصنيف:Python Modules]] | [[تصنيف:Python Modules]] | ||
[[تصنيف:Python Methods]] | [[تصنيف:Python Methods]] |
المراجعة الحالية بتاريخ 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)