تقنية

extend في argparse: هل تضيف القائمة أم عناصرها؟

argparse; --tag; extend; nargs:"+"; input:["--tag","bud","leaf"]; tag:["bud","leaf"]; len:2
عناصر.

extend يضيف عناصر قائمة القيم هنا. [1] [2]

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

عناصرها؛ append يضيفها كعنصر واحد هنا. [1] [2]

  • extend يضيف عناصر قائمة القيم هنا. [1] [2]
  • على CPython 3.12.14، نضيف --tag بفعل extend وnargs="+"؛ دون افتراضي صريح أو type أو choices. [1] [2]
  • تحليل ["--tag","bud","leaf"] يعطي tag=["bud","leaf"]؛ طول القائمة الخارجية 2. [1] [2]
  • nargs="+" يجمع القيم المقدمة في قائمة؛ التنفيذ يستعمل extend(values)، فيضيف عناصرها. [1] [2]
  • تحكم بمحلل مستقل والخيار والمدخل نفسيهما، لكن بفعل append: tag=[["bud","leaf"]] وطوله الخارجي 1؛ التنفيذ يستعمل append(values). نفحص مساحة أسماء جديدة لكل محلل. [1] [2]

عناصر القائمة

extend يضيف عناصر قائمة القيم هنا. [1] [2]

الضبط

على CPython 3.12.14، نضيف --tag بفعل extend وnargs="+"؛ دون افتراضي صريح أو type أو choices. [1] [2]

قائمة مسطحة

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

import argparse own=argparse.ArgumentParser() own.add_argument("--tag",action="extend",nargs="+") ns=own.parse_args(["--tag","bud","leaf"]) print(ns.tag,len(ns.tag)) [1] [2]

argparse; independent control; --tag; append; nargs:"+"; input:["--tag","bud","leaf"]; tag:[["bud","leaf"]]; len:1
قائمة.

قائمة متداخلة

nargs="+" يجمع القيم المقدمة في قائمة؛ التنفيذ يستعمل extend(values)، فيضيف عناصرها. [1] [2]

control=argparse.ArgumentParser() control.add_argument("--tag",action="append",nargs="+") cns=control.parse_args(["--tag","bud","leaf"]) print(cns.tag,len(cns.tag)) [1] [2]

تحكم بمحلل مستقل والخيار والمدخل نفسيهما، لكن بفعل append: tag=[["bud","leaf"]] وطوله الخارجي 1؛ التنفيذ يستعمل append(values). نفحص مساحة أسماء جديدة لكل محلل. [1] [2]

المراجع

  1. Python argparse
  2. CPython argparse

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

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