summaryrefslogtreecommitdiffstats
path: root/Doc
diff options
context:
space:
mode:
authorSteven Bethard <steven.bethard@gmail.com>2011-03-26 18:55:36 (GMT)
committerSteven Bethard <steven.bethard@gmail.com>2011-03-26 18:55:36 (GMT)
commit0a3a7d35ca7f3a8a1de84cdc7b494c48afd8e0f9 (patch)
tree7e23b1ee59b725d9f5e78f9ca020223285a767ff /Doc
parent08ce60800e58db6817f70a80f5297d25ec3fd4ec (diff)
parentd8f2d50c204442d0dfafcc29db3177d15abb41df (diff)
downloadcpython-0a3a7d35ca7f3a8a1de84cdc7b494c48afd8e0f9.zip
cpython-0a3a7d35ca7f3a8a1de84cdc7b494c48afd8e0f9.tar.gz
cpython-0a3a7d35ca7f3a8a1de84cdc7b494c48afd8e0f9.tar.bz2
Issue #8982: Improve the documentation for the argparse Namespace object. (Merge from 3.2.)
Diffstat (limited to 'Doc')
-rw-r--r--Doc/library/argparse.rst21
1 files changed, 16 insertions, 5 deletions
diff --git a/Doc/library/argparse.rst b/Doc/library/argparse.rst
index 7a89654..da7565c 100644
--- a/Doc/library/argparse.rst
+++ b/Doc/library/argparse.rst
@@ -1330,13 +1330,24 @@ of :data:`sys.argv`. This can be accomplished by passing a list of strings to
Namespace(accumulate=<built-in function sum>, integers=[1, 2, 3, 4])
-Custom namespaces
-^^^^^^^^^^^^^^^^^
+The Namespace object
+^^^^^^^^^^^^^^^^^^^^
+
+By default, :meth:`parse_args` will return a new object of type :class:`Namespace`
+where the necessary attributes have been set. This class is deliberately simple,
+just an :class:`object` subclass with a readable string representation. If you
+prefer to have dict-like view of the attributes, you can use the standard Python
+idiom via :func:`vars`::
+
+ >>> parser = argparse.ArgumentParser()
+ >>> parser.add_argument('--foo')
+ >>> args = parser.parse_args(['--foo', 'BAR'])
+ >>> vars(args)
+ {'foo': 'BAR'}
It may also be useful to have an :class:`ArgumentParser` assign attributes to an
-already existing object, rather than the newly-created :class:`Namespace` object
-that is normally used. This can be achieved by specifying the ``namespace=``
-keyword argument::
+already existing object, rather than a new :class:`Namespace` object. This can
+be achieved by specifying the ``namespace=`` keyword argument::
>>> class C:
... pass