تقنية

PrettyPrinter في بايثون: هل isreadable تفحص حد depth؟

عرض القائمة مختصر عند عمق واحد
حد العرض. [1] [2]

نميز حد العرض من مسار الفحص في إصدار محدد. [1] [2]

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

في 3.12.14 لا تطبق isreadable حد العمق هنا. [1] [2]

  • قائمتنا [['bud']] غير دورية. [1] [2]
  • مع depth=1 يكون العرض [[...]]. [1] [2]
  • مع ذلك تعيد isreadable(x) القيمة True. [1] [2]
  • تمرير الحد 1 إلى format يجعل العلم False. [1] [2]
  • الأصل يبقى نفسه؛ لم نستعمل eval. [1] [2]

المثال

import pprint as m
x=[['bud']]
p=m.PrettyPrinter(depth=1)
print(p.pformat(x))
print(p.isreadable(x))
print(p.format(x,{},1,0)[1])

[1] [2]

سبب الاختلاف

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

فحص القراءة والفحص بحد صريح يختلفان
نتيجتا الفحص. [1] [2]

النطاق

نفحص قوائمنا العادية فقط. True لا يثبت استعادة النص المختصر للأصل. لا نعمم على إصدار آخر أو تمثيل مخصص. [1] [2]

المراجع

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

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

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