تقنية

required في argparse: هل يعفي الافتراضي من تقديم الخيار؟

افتراضي وخيار مطلوب؛ argparse; --tag; required:True; default:"leaf"; input:[]; SystemExit:2; input:["--tag","bud"]; tag:"bud"
مطلوب.

الافتراضي لا يعفي من تقديم الخيار المطلوب هنا. [1] [2]

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

لا؛ الخيار المطلوب يجب تقديمه في مثالنا. [1] [2]

  • الافتراضي لا يعفي من تقديم الخيار المطلوب هنا. [1] [2]
  • على CPython 3.12.14، --tag بتخزين عادي مع required=True وdefault="leaf"، دون تخصيص الخروج. [1] [2]
  • تحليل [] يثير SystemExit بالرمز 2؛ تحليل ["--tag","bud"] يعطي {"tag":"bud"}. نلتقط الخروج لمتابعة المثال. [1] [2]
  • فحص المطلوب يتتبع حضور الفعل؛ الافتراضي لا يعوض الغياب، ومعالجة الخطأ المعتادة تنهي التحليل. [1] [2]
  • تحكم مستقل بالخيار والافتراضي نفسيهما دون required: تحليل [] يعطي {"tag":"leaf"}. [1] [2]

مطلوب رغم الافتراضي

الافتراضي لا يعفي من تقديم الخيار المطلوب هنا. [1] [2]

الضبط

على CPython 3.12.14، --tag بتخزين عادي مع required=True وdefault="leaf"، دون تخصيص الخروج. [1] [2]

غياب وحضور

تحليل [] يثير SystemExit بالرمز 2؛ تحليل ["--tag","bud"] يعطي {"tag":"bud"}. نلتقط الخروج لمتابعة المثال. [1] [2]

import argparse,contextlib,io own=argparse.ArgumentParser() own.add_argument("--tag",required=True,default="leaf") try: with contextlib.redirect_stderr(io.StringIO()): own.parse_args([]) except SystemExit as ex: print(type(ex).__name__,ex.code) print(vars(own.parse_args(["--tag","bud"]))) [1] [2]

تحكم مستقل؛ argparse; --tag; required:False; default:"leaf"; input:[]; tag:"leaf"
اختياري.

دون اشتراط

فحص المطلوب يتتبع حضور الفعل؛ الافتراضي لا يعوض الغياب، ومعالجة الخطأ المعتادة تنهي التحليل. [1] [2]

control=argparse.ArgumentParser() control.add_argument("--tag",default="leaf") print(vars(control.parse_args([]))) [1] [2]

تحكم مستقل بالخيار والافتراضي نفسيهما دون required: تحليل [] يعطي {"tag":"leaf"}. [1] [2]

المراجع

  1. Python argparse
  2. CPython argparse

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

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