تقنية

token في بايثون: هل الرمز الطرفي يعني نهاية الإدخال؟

طرفي دون نهاية
مقارنة مؤلفة. [1] [2]

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

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

لا؛ ISTERMINAL يصنف الرمز طرفيًا، وISEOF يفحص علامة نهاية الإدخال. [1] [2]

  • الخرج الأول: NAME True False. [1] [2]
  • الخرج الثاني: ENDMARKER True True. [1] [2]
  • إذن NAME طرفي لكنه لا يدل على نهاية الإدخال. [1] [2]
  • tok_name يعرض الاسم المقابل للقيمة العددية. [1] [2]
  • اختبرنا 3.12.14؛ القيم العددية قد تتغير بين الإصدارات. [1] [2]

المثال

import token
for n in [token.NAME,token.ENDMARKER]:
 print(token.tok_name[n],token.ISTERMINAL(n),token.ISEOF(n))

[1] [2]

معنى التصنيفين

في المقارنة المؤلفة، كلا الثابتين أدنى من NT_OFFSET في التنفيذ، ولذلك يعيدان True للتصنيف الطرفي. أما اختبار النهاية فيقارن القيمة بـENDMARKER تحديدًا. «طرفي» يتعلق بأوراق شجرة التحليل، لا بآخر موضع زمني. [1] [2]

علامة نهاية طرفية
الثابت الثاني. [1] [2]

الحدود

استخدمنا ثوابت موجودة، لا نصًا نحلله. لا يثبت ISTERMINAL وحده صحة برنامج أو اكتمال قراءته؛ استخدم اختبار النهاية للسؤال عن علامتها. [1] [2]

المراجع

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

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