title: Why this unpacking of arguments does not work?
body: <p>I get an error <code>type object argument after ** must be a mapping, not tuple</code>.</p>
  
  <p>I have this code:
  <code>create_character = player.Create(**generate_player.generate())</code></p>
  
  <p>this is <code>player.py</code> module:</p>
  
  <pre><code>class Create(object):
  
      def __init__(self,name,age,gender):
          self.name = name
          self.age = age
          self.gender = gender
  </code></pre>
  
  <p>this is <code>generate_player.py</code> module:</p>
  
  <pre><code>import prompt
  
  def generate():
  
      print "Name:"
      name = prompt.get_name()
      print "Age:"
      age = prompt.get_age()
      print "Gender M/F:"
      gender = prompt.get_gender()
  
      return name, age, gender
  </code></pre>
  
  <p>The <code>prompt</code> module is just bunch of <code>raw_input</code>s that return either string or integers (int for <code>age</code>).</p>
  
  <p>Why is it returning tuples? When I run <code>print type</code> in <code>generate_player</code> module I get string, int, string for my arguments.</p>