تقنية

choices="bud" في argparse: هل يسمح بالكلمة bud كاملة؟

سلسلة خيارات؛ argparse; exit_on_error:False; --tag,choices:bud; input:[--tag,bud]; ArgumentError; input:[--tag,b]; tag:b
أحرف.

سلسلة choices ليست قائمة بخيار كامل هنا. [1] [2]

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

لا؛ القائمة بعنصر تقبل الكلمة هنا. [1] [2]

  • سلسلة choices ليست قائمة بخيار كامل هنا. [1] [2]
  • على CPython 3.12.14، --tag عادي مع choices="bud" وexit_on_error=False؛ المدخل ["--tag","bud"]. [1] [2]
  • الكلمة bud تثير ArgumentError هنا؛ المدخل ["--tag","b"] يعطي tag="b". [1] [2]
  • التنفيذ يحول سلسلة choices إلى مكرر قبل اختبار العضوية، فيفحص الأحرف هنا. [1] [2]
  • تحكم مستقل بنفس الخيار والضبط لكن choices=["bud"]: المدخل الأول يعطي tag="bud". نفحص هذه النسخة والمدخلين؛ لا تعميم على الإصدارات الأخرى أو الحاويات المخصصة. [1] [2]

سلسلة وقائمة

سلسلة choices ليست قائمة بخيار كامل هنا. [1] [2]

الضبط

على CPython 3.12.14، --tag عادي مع choices="bud" وexit_on_error=False؛ المدخل ["--tag","bud"]. [1] [2]

أحرف السلسلة

الكلمة bud تثير ArgumentError هنا؛ المدخل ["--tag","b"] يعطي tag="b". [1] [2]

import argparse args=["--tag","bud"] own=argparse.ArgumentParser(exit_on_error=False) own.add_argument("--tag",choices="bud") try: own.parse_args(args) except argparse.ArgumentError: print("ArgumentError") print(own.parse_args(["--tag","b"]).tag) [1] [2]

قائمة بعنصر؛ argparse; exit_on_error:False; --tag,choices:[bud]; input:[--tag,bud]; tag:bud
عنصر.

عنصر كامل

التنفيذ يحول سلسلة choices إلى مكرر قبل اختبار العضوية، فيفحص الأحرف هنا. [1] [2]

control=argparse.ArgumentParser(exit_on_error=False) control.add_argument("--tag",choices=["bud"]) print(control.parse_args(args).tag) [1] [2]

تحكم مستقل بنفس الخيار والضبط لكن choices=["bud"]: المدخل الأول يعطي tag="bud". نفحص هذه النسخة والمدخلين؛ لا تعميم على الإصدارات الأخرى أو الحاويات المخصصة. [1] [2]

المراجع

  1. Python argparse
  2. CPython argparse

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

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