title: TypeError: __init__() missing 2 required positional arguments: 'firstname' and 'lastname'
body: <pre><code>class Person(): 
     def __init__(self, firstname, lastname): 
          self.firstname = firstname 
          self.lastname = lastname 
     def fullname(self): 
         print("His full name is", self.firstname, self.lastname)
  
  class Employee(Person): 
     def __init__(self, firstname, lastname): 
         super(Employee, self).__init__() 
         self.firstname = firstname 
         self.lastname = lastname 
     def fullname(self): 
         print("The name of this employee is", self.firstname, self.lastname) 
  </code></pre>
  
  <p>Why if I write <code>emp1 = Employee(firstname="David", lastname="Labrecque")</code>, I got the error 
  <code>TypeError: __init__() missing 2 required positional arguments: 'firstname' and 'lastname'</code> ?</p>
  
  <p>Even if the two classes has firstname and lastname, I didn't have to overwrite it inside the "super(...).<strong>init</strong>" function.</p>
  
  <p><strong>UPDATE</strong></p>
  
  <p>Why if I run <code>emp1.fullname()</code>, <code>fullname()</code> from <code>Person()</code> class is never called? Only <code>fullname()</code> from <code>Employee()</code> class is called? Is there a way to call both of them?</p>