تقنية

Enum في بايثون: هل يفحص in اسم العضو؟

القيمة 4 مقبولة في Mark والاسم bud غير مقبول
القيمة والاسم. [1] [2]

ميز اختبار القيمة عن البحث بالاسم. [1] [2]

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

لا؛ اسم العضو ليس قيمة في تعدادنا. [1] [2]

  • عرفنا bud=4 وleaf=9. [1] [2]
  • 4 in Mark يعطي True. [1] [2]
  • "bud" in Mark يعطي False. [1] [2]
  • "bud" in Mark.__members__ يعطي True. [1] [2]
  • اختبرنا 3.12.14، دون تخصيص أو Flag. [1] [2]

المثال

from enum import Enum
class Mark(Enum):
    bud=4
    leaf=9
print(4 in Mark)
print("bud" in Mark)
print("bud" in Mark.__members__)

[1] [2]

ماذا يفحص الاحتواء؟

المصدر يقبل العضو نفسه، ثم يجرب الإنشاء بالقيمة. قيم تعدادنا أعداد صحيحة؛ ينجح 4 ولا ينجح النص bud. خريطة __members__ مفاتيحها أسماء؛ لذا تنجح المقارنة الثالثة. [1] [2]

الاسم bud موجود في مفاتيح خريطة الأعضاء
خريطة الأسماء. [1] [2]

الإصدار والنطاق

توثق 3.12 قبول القيمة؛ قبلها يرفع فحص غير العضو TypeError. هذا وصف الوثائق؛ شغلنا 3.12.14 فقط. [1] [2]

المراجع

  1. Python 3.12: Enum membership
  2. CPython 3.12.14: EnumType containment
  3. موضوع تك: لغة بايثون — مفردات
  4. موضوع تك: تطبيقات بايثون — مفردات

للتوسع: بحث عن لغات البرمجة

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