From: Savannah Ostrowski Date: Tue, 9 Jun 2026 15:37:24 +0000 (-0700) Subject: GH-61082: Clarify nargs='*' positional default behavior (#150989) X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=bc37a227b2f481d0f260f9beae5229e8d432a0cc;p=thirdparty%2FPython%2Fcpython.git GH-61082: Clarify nargs='*' positional default behavior (#150989) --- diff --git a/Doc/library/argparse.rst b/Doc/library/argparse.rst index 622f844a4a0b..4c588d447a9a 100644 --- a/Doc/library/argparse.rst +++ b/Doc/library/argparse.rst @@ -1051,6 +1051,10 @@ is used when no command-line argument was present:: >>> parser.parse_args([]) Namespace(foo=42) +Because ``nargs='*'`` gathers any supplied values into a list, an absent +positional argument yields an empty list (``[]``). Only a non-``None`` +*default* overrides this (so ``default=None`` still gives ``[]``). + For required_ arguments, the ``default`` value is ignored. For example, this applies to positional arguments with nargs_ values other than ``?`` or ``*``, or optional arguments marked as ``required=True``.