تقنية

optparse في بايثون: هل يقرأ الخيارات بعد أول وسيط عادي؟

القيمة الافتراضية تبقى
مثال مؤلف. [1] [2]

نختبر موضع الخيار بقائمة مؤلفة. [1] [2]

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

لا، بعد disable_interspersed_args() يتوقف عند أول وسيط ليس خيارًا. [1] [2]

  • الخرج هنا: 1 ['own', '--level', '3']. [1] [2]
  • بقي level افتراضيًا؛ لم يُفسَّر الخيار التالي لـown. [1] [2]
  • مع enable_interspersed_args() يصبح الخرج 3 ['own']؛ وهذا السلوك مفعّل افتراضيًا. [1] [2]
  • تقديم --level 3 قبل own يقرأه حتى مع التعطيل. [1] [2]
  • الفاصل -- ينهي قراءة الخيارات أيضًا. اختبرنا 3.12.14 بقائمة صريحة. [1] [2]

المثال

from optparse import OptionParser
p=OptionParser()
p.add_option("--level",type="int",default=1)
p.disable_interspersed_args()
v,a=p.parse_args(["own","--level","3"])
print(v.level,a)

[1] [2]

موضع التوقف

عند تعطيل المزج، تبقى القائمة من own فصاعدًا ضمن a. لاستمرار القراءة بعده، استبدل التعطيل بالتمكين؛ عندئذ يخزن المحلل العدد 3 ويعيد own وحده. [1] [2]

التمكين يقرأ الخيار
القائمة نفسها مع التمكين. [1] [2]

الحدود

إذا بدأت القائمة بـ--، يبقى ما بعده دون تفسير كخيارات، حتى مع التمكين. لم نشغّل أمرًا؛ حللنا نصوصًا. المثال لا يختبر خيارات مجهولة أو إجراءات مخصصة. [1] [2]

المراجع

  1. Python: optparse والتوقف عند الوسيط
  2. CPython3.12.14: optparse.py
  3. موضوع تك: لغة بايثون — مفردات
  4. موضوع تك: تطبيقات بايثون — مفردات

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