تقنية

SUPPRESS في argparse: هل الغياب يعطي خاصية بقيمة None؟

argparse; argument_default:SUPPRESS; input:[]; has_tag:False; vars:{}
غياب.

SUPPRESS تمنع إنشاء الخاصية عند غياب الخيار في مثالنا. [1] [2]

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

لا؛ الخاصية غير موجودة، وليست بقيمة None. [1] [2]

  • SUPPRESS تمنع إنشاء الخاصية عند غياب الخيار في مثالنا. [1] [2]
  • على CPython 3.12.14، نضبط argument_default=argparse.SUPPRESS ثم نضيف --tag دون default صريح؛ نحلل بقوائم ومساحات أسماء جديدة. [1] [2]
  • مع []، hasattr(absent,"tag") تعطي False وvars(absent) تعطي {}؛ مع ["--tag","bud"] تظهر tag بقيمة "bud". [1] [2]
  • إضافة الخيار تستعمل الافتراضي العام هنا؛ إعداد مساحة الأسماء لا يضيف خاصية عندما يكون افتراضيها SUPPRESS. [1] [2]
  • تحكم بمحلل مستقل بالضبط المعتاد، نضيف --tag دون default صريح؛ تحليل [] ينشئ tag بقيمة None: وجود الخاصية True والقاموس {"tag":None}. [1] [2]

غياب الخاصية

SUPPRESS تمنع إنشاء الخاصية عند غياب الخيار في مثالنا. [1] [2]

الضبط العام

على CPython 3.12.14، نضبط argument_default=argparse.SUPPRESS ثم نضيف --tag دون default صريح؛ نحلل بقوائم ومساحات أسماء جديدة. [1] [2]

غياب وحضور

مع []، hasattr(absent,"tag") تعطي False وvars(absent) تعطي {}؛ مع ["--tag","bud"] تظهر tag بقيمة "bud". [1] [2]

import argparse own=argparse.ArgumentParser(argument_default=argparse.SUPPRESS) own.add_argument("--tag") absent=own.parse_args([]) print(hasattr(absent,"tag"),vars(absent)) present=own.parse_args(["--tag","bud"]) print(present.tag) [1] [2]

argparse; normal parser; input:[]; has_tag:True; tag:None; vars:{"tag":None}
وجود.

قيمة None

إضافة الخيار تستعمل الافتراضي العام هنا؛ إعداد مساحة الأسماء لا يضيف خاصية عندما يكون افتراضيها SUPPRESS. [1] [2]

control=argparse.ArgumentParser() control.add_argument("--tag") normal=control.parse_args([]) print(hasattr(normal,"tag"),normal.tag,vars(normal)) [1] [2]

تحكم بمحلل مستقل بالضبط المعتاد، نضيف --tag دون default صريح؛ تحليل [] ينشئ tag بقيمة None: وجود الخاصية True والقاموس {"tag":None}. [1] [2]

المراجع

  1. Python argparse
  2. CPython argparse

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

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