تقنية

ElementTree في بايثون: هل False تعني أن العنصر غير موجود؟

صفر أبناء يعطي False وابن واحد يعطي True
النص R ثابت. [1] [2] [3]

نختبر عنصرًا مؤلفًا يحوي نصًا. [1] [2] [3]

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

لا؛ عنصرنا موجود رغم bool=False قبل إضافة ابن. [1] [2] [3]

  • ننشئ own بنص R. [1] [2] [3]
  • اختبار is None يعطي False. [1] [2] [3]
  • دون أبناء: len=0 وbool=False. [1] [2] [3]
  • بعد إضافة ابن: len=1 وbool=True. [1] [2] [3]
  • اختبرنا 3.12.14؛ الاختبار المنطقي يصدر DeprecationWarning. [1] [2] [3]

المثال

import xml.etree.ElementTree as t
e=t.Element('own');e.text='R'
print(e is None)
print(len(e),bool(e))
t.SubElement(e,'child')
print(len(e),bool(e))

[1] [2] [3]

المخرجات False ثم 0 False ثم 1 True. [1] [2] [3]

النص والأبناء

النص ليس ابنًا؛ لذلك لم يغيّر القيمة المنطقية. استخدم is None لغياب العنصر، وlen لعدد الأبناء. [1] [2] [3]

اختبار is None يعطي False قبل الابن وبعده
العنصر موجود في الحالتين. [1] [2] [3]

حدود الإصدار

السلوك المنطقي سيختلف مستقبلًا وفق الوثائق؛ لا نعممه. لم نقرأ ملف XML أو نتحقق من صحة مستند. [1] [2] [3]

المراجع

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

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