تقنية

max_lines في textwrap: هل يسلم النص القصير من لاحقة طويلة؟

bud; width=4; placeholder=.....; max_lines=1: ValueError.
فحص اللاحقة.

مع max_lines=1، تتحقق textwrap من اللاحقة؛ قد ترفع ValueError حتى مع نص يسع width. [1] [2]

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

لا؛ اختبارنا يرفع ValueError. [1] [2]

  • مع max_lines=1، تتحقق textwrap من اللاحقة؛ قد ترفع ValueError حتى مع نص يسع width. [1] [2]
  • على CPython 3.12.14، النص bud طوله 3؛ نستخدم width=4 وplaceholder="....." بطول 5، مع max_lines=1. [1] [2]
  • wrap ترفع ValueError؛ فحص طول اللاحقة يسبق بناء السطور، وليس مشروطًا بالحاجة إلى اختصار هذا النص. [1] [2]
  • تحكم بالنص والعرض واللاحقة نفسها: نحذف max_lines=1، فيستعمل افتراضي None دون حد للسطور. [1] [2]
  • control تعيد قائمة فيها bud كاملة، بطول 3؛ اللاحقة غير مستخدمة هنا. نختبر نص ASCII دون هامش أو فراغات أو قياس خط بالبكسل. [1] [2]

فحص قبل الاختصار

مع max_lines=1، تتحقق textwrap من اللاحقة؛ قد ترفع ValueError حتى مع نص يسع width. [1] [2]

نص قصير ولاحقة أطول

على CPython 3.12.14، النص bud طوله 3؛ نستخدم width=4 وplaceholder="....." بطول 5، مع max_lines=1. [1] [2]

موضع الخطأ

wrap ترفع ValueError؛ فحص طول اللاحقة يسبق بناء السطور، وليس مشروطًا بالحاجة إلى اختصار هذا النص. [1] [2]

from textwrap import wrap try:wrap("bud",width=4,max_lines=1,placeholder=".....") except ValueError:print("ValueError") [1] [2]

bud; width=4; placeholder=.....; max_lines=None: bud.
دون الحد: النص محفوظ.

غياب حد السطور والتحكم

تحكم بالنص والعرض واللاحقة نفسها: نحذف max_lines=1، فيستعمل افتراضي None دون حد للسطور. [1] [2]

control=wrap("bud",width=4,placeholder=".....") print(control) print(list(map(len,control))) [1] [2]

control تعيد قائمة فيها bud كاملة، بطول 3؛ اللاحقة غير مستخدمة هنا. نختبر نص ASCII دون هامش أو فراغات أو قياس خط بالبكسل. [1] [2]

المراجع

  1. Python max_lines and placeholder
  2. CPython 3.12.14 placeholder check

للتوسع: لغات البرمجة.

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