تقنية

nargs=1 في argparse: هل تعني قيمة مفردة؟

argparse; --tag; nargs:1; input:["--tag","bud"]; tag:["bud"]; list
قائمة.

nargs=1 يعيد قائمة بعنصر واحد في مثالنا. [1] [2]

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

لا؛ قيمة واحدة داخل قائمة هنا. [1] [2]

  • nargs=1 يعيد قائمة بعنصر واحد في مثالنا. [1] [2]
  • على CPython 3.12.14، نضيف --tag بفعل التخزين العادي مع nargs=1، دون type أو choices؛ نقدم قيمة واحدة. [1] [2]
  • تحليل ["--tag","bud"] يعطي tag=["bud"] من نوع list؛ العنصر نص، والناتج قائمة. [1] [2]
  • عدد الوسيطات وشكل الناتج مختلفان؛ العدد الصحيح هنا يسلك مسار القائمة، رغم أن العدد واحد. [1] [2]
  • تحكم بمحلل مستقل والخيار نفسه دون nargs صريح: المدخل نفسه يعطي tag="bud" من نوع str. نفحص الحضور بقوائم صريحة ومساحات أسماء جديدة. [1] [2]

قائمة من عنصر

nargs=1 يعيد قائمة بعنصر واحد في مثالنا. [1] [2]

عدد صحيح

على CPython 3.12.14، نضيف --tag بفعل التخزين العادي مع nargs=1، دون type أو choices؛ نقدم قيمة واحدة. [1] [2]

شكل الناتج

تحليل ["--tag","bud"] يعطي tag=["bud"] من نوع list؛ العنصر نص، والناتج قائمة. [1] [2]

import argparse own=argparse.ArgumentParser() own.add_argument("--tag",nargs=1) ns=own.parse_args(["--tag","bud"]) print(ns.tag,type(ns.tag).__name__) [1] [2]

argparse; independent control; --tag; no explicit nargs; input:["--tag","bud"]; tag:"bud"; str
نص.

قيمة مفردة

عدد الوسيطات وشكل الناتج مختلفان؛ العدد الصحيح هنا يسلك مسار القائمة، رغم أن العدد واحد. [1] [2]

control=argparse.ArgumentParser() control.add_argument("--tag") cns=control.parse_args(["--tag","bud"]) print(cns.tag,type(cns.tag).__name__) [1] [2]

تحكم بمحلل مستقل والخيار نفسه دون nargs صريح: المدخل نفسه يعطي tag="bud" من نوع str. نفحص الحضور بقوائم صريحة ومساحات أسماء جديدة. [1] [2]

المراجع

  1. Python argparse
  2. CPython argparse

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

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