]> granicus.if.org Git - python/commitdiff
Clean-up example
authorRaymond Hettinger <python@rcn.com>
Mon, 16 Jul 2012 06:53:32 +0000 (23:53 -0700)
committerRaymond Hettinger <python@rcn.com>
Mon, 16 Jul 2012 06:53:32 +0000 (23:53 -0700)
Doc/library/collections.rst

index 3c1a8bf2201278aca443ea0c075a20674fe3d015..c15885e574f96ada4ea8a22cf7f3349fdf794de3 100644 (file)
@@ -130,16 +130,22 @@ Example of simulating Python's internal lookup chain::
         import builtins
         pylookup = ChainMap(locals(), globals(), vars(builtins))
 
-Example of letting user specified values take precedence over environment
-variables which in turn take precedence over default values::
+Example of letting user specified command-line arguments take precedence over
+environment variables which in turn take precedence over default values::
 
         import os, argparse
-        defaults = {'color': 'red', 'user': guest}
+
+        defaults = {'color': 'red', 'user': 'guest'}
+
         parser = argparse.ArgumentParser()
         parser.add_argument('-u', '--user')
         parser.add_argument('-c', '--color')
-        user_specified = vars(parser.parse_args())
-        combined = ChainMap(user_specified, os.environ, defaults)
+        namespace = parser.parse_args()
+        command_line_args = {k:v for k, v in vars(namespace).items() if v}
+
+        combined = ChainMap(command_line_args, os.environ, defaults)
+        print(combined['color'])
+        print(combined['user'])
 
 Example patterns for using the :class:`ChainMap` class to simulate nested
 contexts::