تقنية

بايتات UUID في بايثون: أي الحقول يتغير ترتيبها؟

تغير ترتيب أول ثلاثة حقول
أول ثمانية بايتات. [1] [2]

تتبّع حدود الحقول. [1] [2]

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

bytes_le لا يعكس البايتات كلها. [1] [2]

  • bytes وbytes_le كلاهما 16 بايتًا. [1] [2]
  • الحقل الأول بأربعة بايتات يُعكس ترتيبه. [1] [2]
  • الحقلان التاليان، ببايتين لكل منهما، يُعكس كل منهما منفردًا. [1] [2]
  • الثمانية الأخيرة تبقى بترتيبها. [1] [2]
  • UUID(bytes_le=u.bytes_le)==u يعطي True؛ اختبرنا قيمة ثابتة في 3.12.14 دون وسيط version. [1] [2]

المثال

from uuid import UUID as U
u=U('00112233-4455-6677-'
    '8899-aabbccddeeff')
print(u.bytes[:8].hex())
print(u.bytes_le[:8].hex())
print(u.bytes[8:]==u.bytes_le[8:])
print(U(bytes_le=u.bytes_le)==u)

[1] [2]

المخرجات: 0011223344556677، 3322110055447766، ثم True مرتين. [1] [2]

تتبّع الحقول

الحقول هي time_low، time_mid، time_hi_version بالترتيب؛ أسماؤها لا تعني أننا استخرجنا وقتًا. [1] [2]

الأول 00112233→33221100؛ التاليان 4455→5544 و6677→7766. نقلب البايتات داخل حدود كل حقل. [1] [2]

الثمانية الأخيرة 8899aabbccddeeff باقية؛ الفهارس في الرسم من صفر، والأرقام سداسية. [1] [2]

بقاء ترتيب الثمانية الأخيرة
الذيل نفسه. [1] [2]

إعادة البناء

مرّر الشكل إلى وسيطه الموافق؛ bytes_le ليس مجرد اسم آخر لـbytes. [1] [2]

النطاق

المعرف مؤلف للتتبّع؛ لم نولده عشوائيًا أو نستنتج منه وقتًا أو ضمان تفرد. [1] [2]

المراجع

  1. Python: UUID
  2. CPython 3.12.14: uuid.py
  3. موضوع تك: لغة بايثون — مفردات
  4. موضوع تك: تطبيقات بايثون — مفردات

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