تقنية

doctest في بايثون: هل ثلاث النقاط تحتاج محرفًا؟

علامة الحذف تطابق فجوة فارغة
مع العلم. [1] [2]

مطابقة الخرج قد تشمل فجوة فارغة. [1] [2]

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

لا؛ مع ELLIPSIS يمكن أن تطابق ... نصًا فارغًا. [1] [2]

  • المتوقع ab...cd والفعلي abcd؛ كلاهما ينتهي بسطر جديد. [1] [2]
  • check_output مع العلم تعيد True. [1] [2]
  • مع الأعلام 0 تعيد False. [1] [2]
  • في التحكم، نص فعلي ab...cd ينجح دون العلم. [1] [2]
  • العلامة قد تشمل أسطرًا؛ نفحص OutputChecker في 3.12.14، دون تشغيل أمثلة الاختبار. [1] [2]

المثال

import doctest as d
c=d.OutputChecker()
w="ab...cd\n"
g="abcd\n"
print(c.check_output(
    w,g,d.ELLIPSIS))
print(c.check_output(w,g,0))

[1] [2]

ما الذي طابقته العلامة؟

العلم يجعل العلامة في المتوقع تقبل النص الواقع بين ab وcd. هنا الجزء فارغ، فتعيد المقارنة True ثم False. تطابق العلامة أيضًا جزءًا يعبر نهاية سطر. [1] [2]

غياب علم الحذف يغير المقارنة
دون العلم. [1] [2]

التحكم والنطاق

إذا كان الفعلي ab...cd مع نهاية السطر نفسها، ينجح التحكم دون العلم. نقارن نصوصًا مؤلفة؛ لم نشغل DocTestRunner. [1] [2]

المراجع

  1. Python 3.12: doctest ELLIPSIS
  2. CPython 3.12.14: OutputChecker and ellipsis matching
  3. موضوع تك: لغة بايثون — مفردات
  4. موضوع تك: تطبيقات بايثون — مفردات

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

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