تقنية

count في argparse: هل غياب الخيار يعطي صفرًا؟

argparse; --verbose; count; no explicit default; []:None; ["--verbose"]:1; ["--verbose","--verbose"]:2
غياب.

count لا يعطي صفرًا للغياب تلقائيًا هنا. [1] [2]

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

لا؛ الغياب يعطي None دون افتراضي صريح هنا. [1] [2]

  • count لا يعطي صفرًا للغياب تلقائيًا هنا. [1] [2]
  • على CPython 3.12.14، نضيف --verbose بفعل count دون default صريح؛ نستعمل قوائم ومساحات أسماء جديدة. [1] [2]
  • تحليل [] يعطي None؛ ["--verbose"] يعطي 1؛ ["--verbose","--verbose"] يعطي 2. [1] [2]
  • تنفيذ الفعل يحول None إلى صفر عند استدعائه، ثم يزيد واحدًا؛ الغياب يبقي الافتراضي هنا. [1] [2]
  • تحكم بمحلل مستقل والخيار والفعل نفسيهما مع default=0: الغياب يعطي 0، والحضور مرة يعطي 1، ومرتين يعطي 2. [1] [2]

قيمة الغياب

count لا يعطي صفرًا للغياب تلقائيًا هنا. [1] [2]

الضبط

على CPython 3.12.14، نضيف --verbose بفعل count دون default صريح؛ نستعمل قوائم ومساحات أسماء جديدة. [1] [2]

غياب وتكرار

تحليل [] يعطي None؛ ["--verbose"] يعطي 1؛ ["--verbose","--verbose"] يعطي 2. [1] [2]

import argparse own=argparse.ArgumentParser() own.add_argument("--verbose",action="count") for args in ([],["--verbose"],["--verbose","--verbose"]): print(own.parse_args(args).verbose) [1] [2]

argparse; independent control; --verbose; count; default:0; []:0; ["--verbose"]:1; ["--verbose","--verbose"]:2
صفر.

صفر صريح

تنفيذ الفعل يحول None إلى صفر عند استدعائه، ثم يزيد واحدًا؛ الغياب يبقي الافتراضي هنا. [1] [2]

control=argparse.ArgumentParser() control.add_argument("--verbose",action="count",default=0) for args in ([],["--verbose"],["--verbose","--verbose"]): print(control.parse_args(args).verbose) [1] [2]

تحكم بمحلل مستقل والخيار والفعل نفسيهما مع default=0: الغياب يعطي 0، والحضور مرة يعطي 1، ومرتين يعطي 2. [1] [2]

المراجع

  1. Python argparse
  2. CPython argparse

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

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