تقنية

BooleanOptionalAction في بايثون: كيف تضيف خيار النفي؟

argparse; BooleanOptionalAction; []:None; ["--cache"]:True; ["--no-cache"]:False
حالات.

BooleanOptionalAction تضيف خيار النفي مع الخيار الطويل في مثالنا. [1] [2]

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

من --cache إلى --no-cache. [1] [2]

  • BooleanOptionalAction تضيف خيار النفي مع الخيار الطويل في مثالنا. [1] [2]
  • على CPython 3.12.14، نعرّف --cache بهذا الفعل، دون default صريح أو مساحة أسماء مجهزة. [1] [2]
  • الغياب يعطي None؛ --cache تعطي True؛ --no-cache تعطي False. نحلل كل قائمة مستقلة. [1] [2]
  • الفعل يضيف الاسم المسبوق بـ--no-؛ التنفيذ يحدد القيمة بحسب الاسم المستعمل. [1] [2]
  • تحكم بمحلل مستقل وفعل store_true للخيار --cache فقط: parse_known_args(["--no-cache"]) تعطي cache=False وتبقي ["--no-cache"] ضمن الوسيطات المتبقية؛ لم يُضف خيار النفي هنا. [1] [2]

خيار النفي

BooleanOptionalAction تضيف خيار النفي مع الخيار الطويل في مثالنا. [1] [2]

التعريف

على CPython 3.12.14، نعرّف --cache بهذا الفعل، دون default صريح أو مساحة أسماء مجهزة. [1] [2]

ثلاث حالات

الغياب يعطي None؛ --cache تعطي True؛ --no-cache تعطي False. نحلل كل قائمة مستقلة. [1] [2]

import argparse own=argparse.ArgumentParser() own.add_argument("--cache",action=argparse.BooleanOptionalAction) print(own.parse_args([]).cache) print(own.parse_args(["--cache"]).cache) print(own.parse_args(["--no-cache"]).cache) [1] [2]

argparse; store_true; parse_known_args(["--no-cache"]); cache:False; extra:["--no-cache"]
متبقٍ.

فعل مختلف

الفعل يضيف الاسم المسبوق بـ--no-؛ التنفيذ يحدد القيمة بحسب الاسم المستعمل. [1] [2]

control=argparse.ArgumentParser() control.add_argument("--cache",action="store_true") ns,extra=control.parse_known_args(["--no-cache"]) print(ns.cache,extra) [1] [2]

تحكم بمحلل مستقل وفعل store_true للخيار --cache فقط: parse_known_args(["--no-cache"]) تعطي cache=False وتبقي ["--no-cache"] ضمن الوسيطات المتبقية؛ لم يُضف خيار النفي هنا. [1] [2]

المراجع

  1. Python argparse
  2. CPython argparse

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

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