تقنية

type=bool في argparse: لماذا تصبح False النصية True؟

نص ومنطق؛ argparse; type:bool; input:[--flag,False]; ns.flag:True; type:bool
تحويل.

False النصية ليست قيمة منطقية. [1] [2]

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

لأن النص غير فارغ. [1] [2]

  • على CPython 3.12.14، نمرر النص False إلى --flag مع type=bool. [1] [2]
  • النص غير الفارغ يعطي True عند تحويله بـbool؛ الاسم False لا يغير ذلك. [1] [2]
  • المثال ينتج True من النوع bool. [1] [2]
  • توثيق argparse لا يوصي بـbool محولًا للنصوص. [1] [2]
  • تحكم مستقل بلا type يعيد النص نفسه؛ repr يُظهر الاقتباس والنوع str. [1] [2]

الحالة المحددة

على CPython 3.12.14، نمرر النص False إلى --flag مع type=bool. [1] [2]

حقيقة النص

النص غير الفارغ يعطي True عند تحويله بـbool؛ الاسم False لا يغير ذلك. [1] [2]

نتيجة التحويل

المثال ينتج True من النوع bool. [1] [2]

import argparse args=["--flag","False"] own=argparse.ArgumentParser() own.add_argument("--flag",type=bool) ns=own.parse_args(args) print(ns.flag,type(ns.flag).__name__) [1] [2]

تحكم مستقل؛ argparse; type:None; input:[--flag,False]; cns.flag:'False'; type:str
نص.

تحكم نصي

توثيق argparse لا يوصي بـbool محولًا للنصوص. [1] [2]

control=argparse.ArgumentParser() control.add_argument("--flag") cns=control.parse_args(args) print(repr(cns.flag),type(cns.flag).__name__) [1] [2]

تحكم مستقل بلا type يعيد النص نفسه؛ repr يُظهر الاقتباس والنوع str. [1] [2]

المراجع

  1. Python argparse
  2. CPython argparse

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

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