تقنية

getopt في بايثون: لماذا يبقى الخيار بعد الوسيط العادي؟

item قبل الخيار لا يعطي خيارات و-a قبله يعطي زوج الخيار
الترتيب يغير الجزء المحلّل. [1] [2]

شكل الخيار لا يكفي. [1] [2]

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

تتوقف getopt عند أول وسيط عادي؛ تبقى الوسائط اللاحقة في الجزء المتبقي. [1] [2]

  • نعرّف a خيارًا بلا قيمة. [1] [2]
  • في item -a لا يُحلّل -a. [1] [2]
  • في -a item يظهر الخيار في قائمة الأزواج. [1] [2]
  • القيمة الفارغة تخص خيارًا لا يأخذ وسيطًا. [1] [2]
  • اختبرنا 3.12.14؛ لم نشغّل أمرًا. [1] [2]

المثال

from getopt import getopt as g
print(g(['item','-a'],'a'))
print(g(['-a','item'],'a'))

[1] [2]

الناتجان ([], ['item', '-a']) ثم ([('-a', '')], ['item']). [1] [2]

كيف تقرأ الناتج؟

العنصر الأول للخيارات، والثاني للوسائط المتبقية. [1] [2]

بعد الوسيط item يتوقف الاجتياز؛ لا يعود لتحليل -a اللاحق. [1] [2]

المتبقي item والخيار بعده في الحالة الأولى وitem وحده في الثانية
الأسماء مبسطة؛ القوائم الكاملة في النص. [1] [2]

تفحص حلقة التنفيذ بداية القائمة، وتعيد الباقي عند توقفها. [1] [2]

حد التجربة

قوائمنا بلا اسم البرنامج؛ خيارات قصيرة بلا قيم. [1] [2]

المراجع

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

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