For this step, you need to go through the following steps:
- The alternative for chaining default values of dict.get, instead of using multiple if instances, probably wouldn't improve much the code and if we want to add one additional scope, we would have to add it in every single place where we are looking up the values.
- collections.ChainMap is a very convenient solution to this problem; we can provide a list of mapping containers and it will look for a key through them all.
- Our previous example involving multiple different if instances can be converted to something like this:
import os from collections import ChainMap options = ChainMap(command_line_options, os.environ, config_file_options) value = options.get('optname', ...