تقنية

allow_abbrev في argparse: هل يُقبل اختصار الخيار الطويل؟

argparse; --feature; store_true; allow_abbrev:True; input:["--fea"]; feature:True; extra:[]
مطابقة.

الاختصار غير الملتبس يُقبل بالضبط المعتاد في مثالنا. [1] [2]

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

نعم هنا؛ allow_abbrev=False تعطله. [1] [2]

  • الاختصار غير الملتبس يُقبل بالضبط المعتاد في مثالنا. [1] [2]
  • على CPython 3.12.14، نضيف خيارًا طويلًا واحدًا --feature بفعل store_true؛ --fea بادئة غير ملتبسة هنا. [1] [2]
  • مع allow_abbrev الافتراضية True، parse_known_args(["--fea"]) تعطي feature=True وextra=[]؛ استُهلك الاختصار. [1] [2]
  • مطابقة البادئات تنطبق على parse_known_args أيضًا؛ لا يعني استعمالها أن الاختصار يبقى دائمًا ضمن المتبقي. [1] [2]
  • تحكم بمحلل مستقل وallow_abbrev=False، نضيف الخيار نفسه والفعل نفسه؛ تحليل المدخل نفسه يعطي feature=False وextra=["--fea"]. نفحص خيارًا عاديًا وبادئة غير ملتبسة ومساحات أسماء جديدة. [1] [2]

اختصار مقبول

الاختصار غير الملتبس يُقبل بالضبط المعتاد في مثالنا. [1] [2]

الخيار والبادئة

على CPython 3.12.14، نضيف خيارًا طويلًا واحدًا --feature بفعل store_true؛ --fea بادئة غير ملتبسة هنا. [1] [2]

مطابقة البادئة

مع allow_abbrev الافتراضية True، parse_known_args(["--fea"]) تعطي feature=True وextra=[]؛ استُهلك الاختصار. [1] [2]

import argparse own=argparse.ArgumentParser() own.add_argument("--feature",action="store_true") ns,extra=own.parse_known_args(["--fea"]) print(ns.feature,extra) [1] [2]

argparse; --feature; store_true; allow_abbrev:False; input:["--fea"]; feature:False; extra:["--fea"]
متبقٍ.

تعطيل الاختصار

مطابقة البادئات تنطبق على parse_known_args أيضًا؛ لا يعني استعمالها أن الاختصار يبقى دائمًا ضمن المتبقي. [1] [2]

control=argparse.ArgumentParser(allow_abbrev=False) control.add_argument("--feature",action="store_true") cns,cextra=control.parse_known_args(["--fea"]) print(cns.feature,cextra) [1] [2]

تحكم بمحلل مستقل وallow_abbrev=False، نضيف الخيار نفسه والفعل نفسه؛ تحليل المدخل نفسه يعطي feature=False وextra=["--fea"]. نفحص خيارًا عاديًا وبادئة غير ملتبسة ومساحات أسماء جديدة. [1] [2]

المراجع

  1. Python argparse
  2. CPython argparse

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

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