From: Barry Warsaw Date: Tue, 25 Sep 2012 14:37:58 +0000 (-0400) Subject: - Issue #15935: Clarification of argparse docs, re: add_argument() type and X-Git-Tag: v3.3.1rc1~813^2~42 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=1dedd0a4a4b88eeabb95af4b372a447b4d41b223;p=python - Issue #15935: Clarification of argparse docs, re: add_argument() type and default arguments. Patch contributed by Chris Jerdonek. --- diff --git a/Doc/library/argparse.rst b/Doc/library/argparse.rst index 1313e4b1de..5273e9b12c 100644 --- a/Doc/library/argparse.rst +++ b/Doc/library/argparse.rst @@ -904,6 +904,17 @@ was not present at the command line:: >>> parser.parse_args(''.split()) Namespace(foo=42) +If the ``default`` value is a string, the parser parses the value as if it +were a command-line argument. In particular, the parser applies any type_ +conversion argument, if provided, before setting the attribute on the +:class:`Namespace` return value. Otherwise, the parser uses the value as is:: + + >>> parser = argparse.ArgumentParser() + >>> parser.add_argument('--length', default='10', type=int) + >>> parser.add_argument('--width', default=10.5, type=int) + >>> parser.parse_args() + Namespace(length=10, width=10.5) + For positional arguments with nargs_ equal to ``?`` or ``*``, the ``default`` value is used when no command-line argument was present:: @@ -942,6 +953,9 @@ types and functions can be used directly as the value of the ``type`` argument:: >>> parser.parse_args('2 temp.txt'.split()) Namespace(bar=<_io.TextIOWrapper name='temp.txt' encoding='UTF-8'>, foo=2) +See the section on the default_ keyword argument for information on when the +``type`` argument is applied to default arguments. + To ease the use of various types of files, the argparse module provides the factory FileType which takes the ``mode=`` and ``bufsize=`` arguments of the :func:`open` function. For example, ``FileType('w')`` can be used to create a diff --git a/Misc/NEWS b/Misc/NEWS index ab3c7d447a..2285f8c285 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -589,6 +589,9 @@ Build Documentation ------------- +- Issue #15935: Clarification of argparse docs, re: add_argument() type and + default arguments. Patch contributed by Chris Jerdonek. + - Issue #11964: Document a change in v3.2 to the behavior of the indent parameter of json encoding operations.