مصفوفات البايتات في بايثون

من موسوعة حسوب

مصفوفات البايتات bytearray هي الكائنات القابلة للتغيير والتي تقابل كائنات البايتات bytes.

يُعيد الصّنف bytearray()‎ (والذي يُعامَل مُعاملة الدّلة) مصفوفة بايتات جديدة، ويكون الصّنف تسلسُلًا قابلًا للتّغيير يحتوي على الأعداد الصّحيحة ضمن المدى ‎0 <= x < 256. ويملك مُعظم التّوابع التي تملكها التّسلسلات الأخرى (كالقوائم والصّفوف مثلًا)، والمشروحة في صفحة أنواع التسلسلات القابلة للتّغيير، إضافةً إلى امتلاك مُعظم التّوابع التي يملكها النّوع bytes، انظر عمليّات البايتات.

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

bytearray([source[, encoding[, errors]]])

المعاملات

source

مُعامل اختياريّ يُستعمل لتهيئة المصفوفة عبر عدّة طُرق مختلفة:

  • إن كان سلسلةً نصيّة، فيجب تمرير قيمة للمعامل encoding (وقيمة للمُعامل errors اختياريًّا)، يُحوّل الصّنف بعدها السّلسلةَ النّصيّة إلى بايتات باستخدام التّابع str.encode()‎.
  • إن كان عددًا صحيحًا، فستُهيّأ المصفوفة ببايتات فارغة وسيُحدّد المُعامل حجم المصفوفة.
  • إن كان كائنًا متعلّقًا بواجهة طول الذاكرة المؤقتة (buffer)، فسيُستعمل طول ذاكرة مؤقتة قابل للقراءة فقط للكائن لتهيئة مصفوفة البايتات.
  • إن كان كائنًا قابلًا للتّكرار (iterable) فيجب أن يحتوي على الأعداد الصّحيحة من 0 إلى 256، والتي تُستعمَل كمحتويات مبدئيّة للمصفوفة.

encoding

ترميز المحارف إن كانت قيمة المُعامل source سلسلةً نصيّة.

errors

يُحدّد طريقة التّعامل مع أخطاء ترميز المحارف.

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

تعيد الدالة ()bytearray مصفوفة جديدة من البايتات، وهي تسلسل من الأعداد الصحيحة قابل للتغيير ضمن المدى ‎0 <= x < 256.

إن لم تُحدّد أية مُعاملات للصّنف، فستُعاد مصفوفة حجمها صفر.

أمثلة

الأمثلة التّالية تُوضّح كيفيّة استعمال هذا الصّنف:

>>> bytearray('ABCD', 'UTF-8') # مصفوفة بايتات من سلسلة نصيّة
bytearray(b'ABCD')
>>> bytearray([1, 2, 3]) # مصفوفة بايتات من قائمة أعداد
bytearray(b'\x01\x02\x03')
>>> bytearray() # مصفوفة بايتات فارغة
bytearray(b'')
>>> bytearray(10) # مصفوفة بايتات فارغة ولها طول محدّد
bytearray(b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')

ملاحظات

  • يكون التصريح عن مصفوفات البايتات باستخدام الدالة bytearray()‎ حصرًا، ولا توجد طريقة أخرى.
  • لمّا كانت مصفوفات البايتات قابلةً للتغيير فإنّها تدعم العمليات التي تُجرى على التسلسلات القابلة للتغيير، إضافةً إلى العمليات الشائعة والتي تُجرى على البايتات ومصفوفات البايتات.

انظر أيضًا

مصادر