title: Switch-Case alternative in Python except dictionary
body: <p>I have nested if-else statements and each condition call a different function. something like --</p>
  
  <pre><code>var = "somestring"
  if var == 'call':
      if var2 == 'someothercomparison':
          return func1(arg1, arg2)
      elif var2 == 'otherway':
          return func2()
  elif var == 'sms':
      return func3(arg3)
  elif var == 'mail':
      return func4(arg4)
  </code></pre>
  
  <p>this is just a sample data.. there are many more <code>elif</code>.</p>
  
  <p>If I try to use dictionary then it would become inefficient as then complier/interpreter will try to execute all functions to validate dictionary syntax. So I cannot use dictionary.</p>
  
  <p>Is there any other elegant/classy/pythonic way to do this task? </p>