تقنية

xdrlib في بايثون 3.12: هل pack_bool يحفظ العدد 2؟

ترميز الصدق
عدد مؤلف. [1] [2] [3]

نرمّز عددًا مؤلفًا بالذاكرة. [1] [2] [3]

الخلاصة السريعة

لا؛ pack_bool(2) يرمّز صدقه المنطقي، لا قيمته العددية. [1] [2] [3]

  • الخرج: 00000001 ثم True في 3.12.14. [1] [2] [3]
  • تنتج 1 و2 و-3 البايتات المنطقية نفسها في فحصنا. [1] [2] [3]
  • مع 0 نحصل على 00000000 ثم False. [1] [2] [3]
  • أما pack_int(2) فيعطي 00000002، وفكه عدد 2. [1] [2] [3]
  • المكتبة مهجورة منذ 3.11 ومحذوفة منذ 3.13. [1] [2] [3]

المثال

import xdrlib
p=xdrlib.Packer()
p.pack_bool(2)
raw=p.get_buffer()
print(raw.hex())
print(xdrlib.Unpacker(raw).unpack_bool())

[1] [2] [3]

نوع العملية

تختبر pack_bool الصدق؛ يكتب التنفيذ أربعة بايتات تنتهي بواحد أو صفر. لا تستعيد العدد الأصلي من True. في المقارنة استعملنا pack_int ثم unpack_int للعدد نفسه. [1] [2] [3]

ترميز العدد
عملية مختلفة. [1] [2] [3]

الحدود

هذه واجهة قديمة، لا فحص قبول نوع في مخطط بيانات. لم نرسل بيانات عبر شبكة أو نفحص مدخلات مخصصة أو كل رسائل XDR. [1] [2] [3]

المراجع

  1. Python3.12: xdrlib
  2. CPython3.12.14: xdrlib.py
  3. Python: xdrlib removal
  4. موضوع تك: لغة بايثون — مفردات
  5. موضوع تك: تطبيقات بايثون — مفردات

أُعدّ هذا المقال بمساعدة الذكاء الاصطناعي، وخضع لمراجعة ذاتية بالأداة نفسها. لا يُنسب إلى مراجع بشري أو خبير مستقل. منهجية المحتوى.