diff options
author | Raymond Hettinger <python@rcn.com> | 2012-07-16 06:53:32 (GMT) |
---|---|---|
committer | Raymond Hettinger <python@rcn.com> | 2012-07-16 06:53:32 (GMT) |
commit | b2269baca3da855179c927a87f0703ec6b447f7e (patch) | |
tree | a004e408ae21d85417f9915acdf24098bf1fb22f | |
parent | 4866266bf41e6727502b56c00adab18a4b37d9c1 (diff) | |
download | cpython-b2269baca3da855179c927a87f0703ec6b447f7e.zip cpython-b2269baca3da855179c927a87f0703ec6b447f7e.tar.gz cpython-b2269baca3da855179c927a87f0703ec6b447f7e.tar.bz2 |
Clean-up example
-rw-r--r-- | Doc/library/collections.rst | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/Doc/library/collections.rst b/Doc/library/collections.rst index 3c1a8bf..c15885e 100644 --- a/Doc/library/collections.rst +++ b/Doc/library/collections.rst @@ -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:: |