تقنية

kwlist في بايثون: هل الإضافة تغير iskeyword؟

bud داخل القائمة
عضوية قائمة. [1] [2]

القائمة المعروضة ليست فحصًا مباشرًا دائمًا. [1] [2]

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

لا؛ إضافة bud إلى القائمة لا تغير iskeyword هنا. [1] [2]

  • نعدل keyword.kwlist نفسها، لا نسخة منها. [1] [2]
  • عضوية bud في القائمة تصبح True. [1] [2]
  • يبقى keyword.iskeyword('bud') مساويًا False. [1] [2]
  • الفحص مرتبط بمجموعة ثابتة أنشئت عند تهيئة الوحدة. [1] [2]
  • نزيل الإضافة في finally؛ اختبرنا 3.12.14. [1] [2]

المثال

import keyword
keyword.kwlist.append('bud')
try:
    print('bud' in keyword.kwlist)
    print(keyword.iskeyword('bud'))
finally:
    keyword.kwlist.pop()

[1] [2]

قائمة ومجموعة

المصدر هنا ينشئ frozenset(kwlist) ويربط دالة الفحص بعضويتها. المخرجان True ثم False. تغيير القائمة لاحقًا لا يعدل المجموعة المنشأة؛ لم نستبدل دالة الفحص. [1] [2]

الفحص يعيد False
عضوية مجموعة. [1] [2]

استعادة الحالة

المثال يغير قائمة الوحدة المشتركة ثم يزيل العنصر الذي أضافه. هذه ليست طريقة لتعريف كلمات جديدة؛ لا نعمم آلية التنفيذ على كل إصدار. [1] [2]

المراجع

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

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

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