Commit 94d5f269 authored by Barry Warsaw's avatar Barry Warsaw

- Issue #15935: Clarification of argparse docs, re: add_argument() type and

  default arguments.  Patch contributed by Chris Jerdonek.
parent cff8c51d
...@@ -904,6 +904,17 @@ was not present at the command line:: ...@@ -904,6 +904,17 @@ was not present at the command line::
>>> parser.parse_args(''.split()) >>> parser.parse_args(''.split())
Namespace(foo=42) 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 For positional arguments with nargs_ equal to ``?`` or ``*``, the ``default`` value
is used when no command-line argument was present:: 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:: ...@@ -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()) >>> parser.parse_args('2 temp.txt'.split())
Namespace(bar=<_io.TextIOWrapper name='temp.txt' encoding='UTF-8'>, foo=2) 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 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 factory FileType which takes the ``mode=`` and ``bufsize=`` arguments of the
:func:`open` function. For example, ``FileType('w')`` can be used to create a :func:`open` function. For example, ``FileType('w')`` can be used to create a
......
...@@ -589,6 +589,9 @@ Build ...@@ -589,6 +589,9 @@ Build
Documentation 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 - Issue #11964: Document a change in v3.2 to the behavior of the indent
parameter of json encoding operations. parameter of json encoding operations.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment