تقنية

argparse: لماذا لا يظهر اسم الأمر في النتيجة؟

اسم غير محفوظ؛ argparse; add_subparsers(); add_parser("bud"); input:["bud"]; vars:{}; hasattr(ns,"command"):False
غير محفوظ.

اسم الأمر لا يُحفظ تلقائيًا في مثالنا. [1] [2]

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

حفظ الاسم يحتاج وجهة صريحة هنا. [1] [2]

  • اسم الأمر لا يُحفظ تلقائيًا في مثالنا. [1] [2]
  • على CPython 3.12.14، ننشئ مجموعة بـadd_subparsers دون dest، ونضيف bud بـadd_parser؛ بلا خيارات رئيسية أو وسيطات للأمر، وبمساحة أسماء جديدة. [1] [2]
  • تحليل ["bud"] ينجح ويعطي {}؛ hasattr(ns,"command") يساوي False؛ غياب الخاصية ليس قيمة None. [1] [2]
  • اختيار المحلل الفرعي مستقل عن حفظ اسمه؛ تنفيذ الفعل يسند الاسم عندما تكون وجهة حفظه مطلوبة. [1] [2]
  • تحكم بمحلل مستقل وبالأمر والمدخل نفسيهما، مع dest="command": القاموس {"command":"bud"} ووجود الخاصية True. [1] [2]

حفظ الاسم

اسم الأمر لا يُحفظ تلقائيًا في مثالنا. [1] [2]

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

على CPython 3.12.14، ننشئ مجموعة بـadd_subparsers دون dest، ونضيف bud بـadd_parser؛ بلا خيارات رئيسية أو وسيطات للأمر، وبمساحة أسماء جديدة. [1] [2]

نتيجة بلا اسم

تحليل ["bud"] ينجح ويعطي {}؛ hasattr(ns,"command") يساوي False؛ غياب الخاصية ليس قيمة None. [1] [2]

import argparse own=argparse.ArgumentParser() subs=own.add_subparsers() subs.add_parser("bud") ns=own.parse_args(["bud"]) print(vars(ns),hasattr(ns,"command")) [1] [2]

تحكم مستقل؛ argparse; add_subparsers(dest="command"); add_parser("bud"); input:["bud"]; vars:{"command":"bud"}; hasattr(cns,"command"):True
محفوظ.

وجهة صريحة

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

control=argparse.ArgumentParser() cs=control.add_subparsers(dest="command") cs.add_parser("bud") cns=control.parse_args(["bud"]) print(vars(cns),hasattr(cns,"command")) [1] [2]

تحكم بمحلل مستقل وبالأمر والمدخل نفسيهما، مع dest="command": القاموس {"command":"bud"} ووجود الخاصية True. [1] [2]

المراجع

  1. Python argparse
  2. CPython argparse

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

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