تقنية

add_argument_group في argparse: هل يفرض التنافي؟

مجموعة عادية؛ argparse; add_argument_group("bud"); --left,--right:store_true; input:["--left","--right"]; left:True; right:True
عادية.

المجموعة العادية لا تفرض التنافي هنا. [1] [2]

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

لا؛ نقبل الخيارين المقدمين معًا في مثالنا. [1] [2]

  • المجموعة العادية لا تفرض التنافي هنا. [1] [2]
  • على CPython 3.12.14، ننشئ مجموعة عادية بـadd_argument_group("bud")؛ --left و--right بفعل store_true وافتراضيهما المعتاد. [1] [2]
  • تحليل ["--left","--right"] يعطي {"left":True,"right":True}؛ كلا الخيارين مقدّم. [1] [2]
  • المجموعة العادية هنا تجمع الأفعال للعرض؛ طريقة المجموعة المتنافية تسجل قيدًا مستقلًا. [1] [2]
  • تحكم مستقل بخيارين مماثلين داخل مجموعة متنافية غير مطلوبة: نستعمل add_mutually_exclusive_group()؛ المدخل نفسه يثير SystemExit بالرمز 2؛ نلتقط الخروج لمتابعة المثال، دون تخصيصه. [1] [2]

مجموعة عادية

المجموعة العادية لا تفرض التنافي هنا. [1] [2]

الضبط

على CPython 3.12.14، ننشئ مجموعة عادية بـadd_argument_group("bud")؛ --left و--right بفعل store_true وافتراضيهما المعتاد. [1] [2]

خياران مقدمان

تحليل ["--left","--right"] يعطي {"left":True,"right":True}؛ كلا الخيارين مقدّم. [1] [2]

import argparse,contextlib,io own=argparse.ArgumentParser() g=own.add_argument_group("bud") g.add_argument("--left",action="store_true") g.add_argument("--right",action="store_true") ns=own.parse_args(["--left","--right"]) print(vars(ns)) [1] [2]

تحكم مستقل؛ argparse; add_mutually_exclusive_group(); --left,--right:store_true; input:["--left","--right"]; SystemExit:2
متنافية.

مجموعة متنافية

المجموعة العادية هنا تجمع الأفعال للعرض؛ طريقة المجموعة المتنافية تسجل قيدًا مستقلًا. [1] [2]

control=argparse.ArgumentParser() cg=control.add_mutually_exclusive_group() cg.add_argument("--left",action="store_true") cg.add_argument("--right",action="store_true") try: with contextlib.redirect_stderr(io.StringIO()): control.parse_args(["--left","--right"]) except SystemExit as ex: print(type(ex).__name__,ex.code) [1] [2]

تحكم مستقل بخيارين مماثلين داخل مجموعة متنافية غير مطلوبة: نستعمل add_mutually_exclusive_group()؛ المدخل نفسه يثير SystemExit بالرمز 2؛ نلتقط الخروج لمتابعة المثال، دون تخصيصه. [1] [2]

المراجع

  1. Python argparse
  2. CPython argparse

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

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