title: Difference between --default and --store_const in argparse
body: <p>I read the following in the <a href="https://docs.python.org/dev/library/argparse.html#action" rel="noreferrer"><code>argparse</code></a> documentation:</p>
  
  <blockquote>
    <p>'<code>store_const</code>' - This stores the value specified by the const keyword
    argument. (Note that the const keyword argument defaults to the rather
    unhelpful None.) The '<code>store_const</code>' action is most commonly used with
    optional arguments that specify some sort of flag. For example:</p>
  
  <pre><code>&gt;&gt;&gt; parser = argparse.ArgumentParser()
  &gt;&gt;&gt; parser.add_argument('--foo', action='store_const', const=42)
  &gt;&gt;&gt; parser.parse_args('--foo'.split()) Namespace(foo=42)`
  </code></pre>
  </blockquote>
  
  <p>How is this different from setting a default value for the argument with the <a href="https://docs.python.org/dev/library/argparse.html#default" rel="noreferrer"><code>default</code></a> option? </p>