title: Why other functions listed in the dict are also called?
body: <p>I am writing a script that comprises some functions and an arg will call related function.</p>
  
  <p>I tried <code>{'a':1,'s':2}['a']</code> and it only returns <code>1</code>, so I designed the structure of main function:</p>
  
  <pre><code>def main(): 
      {
          'topic_list'  : topic_list(),
          'topic_create': topic_create(),
          'produce'     : produce(),
          'consume'     : consume()
      }[args.mode]
  </code></pre>
  
  <p>When I call first function by command <code>python3 my_script.py --mode 'topic_list'</code>, it is run as expected. 
  However, when the first function finished, the second function started to run... Why could this happen?</p>