تقنية

الأوامر الفرعية في argparse: هل تظهر خصائص الأمر الآخر؟

أمر مختار؛ argparse; add_subparsers; left:--bud; right:--leaf; input:["left"]; vars:{"bud":None}; hasattr(ns,"leaf"):False
مختار.

لا تظهر خاصية خيار الأمر الآخر في مثالنا. [1] [2]

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

لا؛ الأمر المختار يحدد خصائصه هنا. [1] [2]

  • لا تظهر خاصية خيار الأمر الآخر في مثالنا. [1] [2]
  • على CPython 3.12.14، ننشئ أمرين بadd_subparsers: left بخيار --bud، وright بخيار --leaf؛ تخزين عادي دون افتراضي صريح أو مساحة أسماء مجهزة. [1] [2]
  • تحليل ["left"] يعطي {"bud":None}؛ hasattr(ns,"leaf") يعطي False، لا خاصية بقيمة None للأمر الآخر. [1] [2]
  • التنفيذ يختار المحلل الفرعي، يحلل الباقي بمساحة جديدة وينقل خصائصها؛ لا يجمع خيارات كل الأوامر هنا. [1] [2]
  • تحكم مستقل بالتعريفات نفسها: ["right"] يعطي {"leaf":None} وhasattr(cns,"bud") يساوي False؛ لم نضبط SUPPRESS لخيارينا. [1] [2]

خصائص الأمر المختار

لا تظهر خاصية خيار الأمر الآخر في مثالنا. [1] [2]

أمران وخياران

على CPython 3.12.14، ننشئ أمرين بadd_subparsers: left بخيار --bud، وright بخيار --leaf؛ تخزين عادي دون افتراضي صريح أو مساحة أسماء مجهزة. [1] [2]

اختيار الأول

تحليل ["left"] يعطي {"bud":None}؛ hasattr(ns,"leaf") يعطي False، لا خاصية بقيمة None للأمر الآخر. [1] [2]

import argparse own=argparse.ArgumentParser() subs=own.add_subparsers() left=subs.add_parser("left") left.add_argument("--bud") right=subs.add_parser("right") right.add_argument("--leaf") ns=own.parse_args(["left"]) print(vars(ns),hasattr(ns,"leaf")) [1] [2]

تحكم مستقل؛ argparse; add_subparsers; left:--bud; right:--leaf; input:["right"]; vars:{"leaf":None}; hasattr(cns,"bud"):False
آخر.

اختيار الآخر

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

control=argparse.ArgumentParser() cs=control.add_subparsers() cl=cs.add_parser("left") cl.add_argument("--bud") cr=cs.add_parser("right") cr.add_argument("--leaf") cns=control.parse_args(["right"]) print(vars(cns),hasattr(cns,"bud")) [1] [2]

تحكم مستقل بالتعريفات نفسها: ["right"] يعطي {"leaf":None} وhasattr(cns,"bud") يساوي False؛ لم نضبط SUPPRESS لخيارينا. [1] [2]

المراجع

  1. Python argparse
  2. CPython argparse

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

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