title: Python : class definition with **kwargs
body: <p>When trying to instantiate the following class I am getting the following error :</p>
  
  <pre><code>"TypeError: __init__() takes exactly 2 arguments (3 given)"
  </code></pre>
  
  <p>Do you know what would be the issue ? Here is the class definition :</p>
  
  <pre><code>class db_create_table():
          '''
              doc here
          '''
          def __init__(self,TableName, **kwargs ):
              self.TableName = TableName
              for k,v in kwargs.iteritems():
                  setattr(self, k, k)
  
  
  schema =  {"id" : { "type":"Integer", "primary":"primary_key=True", "unique":"unique = True"},
             "col1" :  { "type":"String()", "primary":"primary_key=False", "unique":"unique = True"},
             "col2" :  { "type":"String()", "primary":"primary_key=False", "unique":"unique = False"},
             "col3" :  { "type":"String()", "primary":"primary_key=False", "unique":"unique = False"},
             "col4" :  { "type":"String()", "primary":"primary_key=False", "unique":"unique = False"},
             "CreatedOn" :  { "type":"DateTime", "primary":"", "unique":"unique = False"},
             "UpdatedOn" :  { "type":"DateTime", "primary":"primary_key=False", "unique":"unique = False"},
                              }
  
  
  db_create_table('Table1', schema)
  </code></pre>