title: super in python 2.7
body: <p>I'm trying to understand how to use <code>super</code> in python</p>
  
  <pre><code>class people:   
   name = ''  
   age = 0  
    __weight = 0  
  
   def __init__(self,n,a,w):  
      self.name = n  
      self.age = a  
      self.__weight = w  
  def speak(self):  
      print("%s is speaking: I am %d years old" %(self.name,self.age))  
  
  
  class student(people):  
   grade = ''  
   def __init__(self,n,a,w,g):  
      #people.__init__(self,n,a,w)  
      super(student,self).__init__(self,n,a,w)
      self.grade = g  
  
   def speak(self):  
      print("%s is speaking: I am %d years old,and I am in grade %d"%(self.name,self.age,self.grade))  
  
  
  s = student('ken',20,60,3)  
  s.speak()
  </code></pre>
  
  <p>The above code gets following error:</p>
  
  <pre><code>---------------------------------------------------------------------
  TypeError                                 Traceback (most recent call last)
  &lt;ipython-input-147-9da355910141&gt; in &lt;module&gt;()
       10 
       11 
  ---&gt; 12 s = student('ken',20,60,3)
       13 s.speak()
  
  &lt;ipython-input-147-9da355910141&gt; in __init__(self, n, a, w, g)
        3     def __init__(self,n,a,w,g):
        4         #people.__init__(self,n,a,w)
  ----&gt; 5         super(student).__init__(self,n,a,w)
        6         self.grade = g
        7 
  
  TypeError: must be type, not classobj
  </code></pre>
  
  <p>I'm confused about why I cannot use <code>super(student,self).__init__(self,n,a,w)</code> in this case, and why I have to use <code>people.__init__(self,n,a,w)</code></p>
  
  <p>Any help?</p>