title: why a method from my subclass not working
body: <p>Here's me playing around with <code>super()</code> method:</p>
  <pre><code>class Rectangle:
  
      def __init__(self, width, length):
  
          self.width = width
          self.length = length
  
      def perimeter(self):
  
          fvalue = (self.width * 2) + (self.length * 2)
  
          return fvalue
  
      def area(self):
  
          fvalue = self.width * self.length
  
          return fvalue
  
  
  class Square(Rectangle):
  
      def __init__(self, width, length):
  
          super().__init__(width, length)
      
      
      def perimeter(self):
  
          return super().perimeter(self)
  
      def area(self):
  
          return super().area(self)
  
  
  square = Square(width=3, length=3)
  print(square.area())
  </code></pre>
  <p>now when if I run this code I will get an error that said</p>
  <pre><code>TypeError: area() takes 1 positional argument but 2 were given
  </code></pre>
  <p>which is weird because in <code>Square.area()</code> I've only passed 1 argument to the <code>super.area()</code> method.
  I later removed that argument and the code works fine, but I'm still confused as of why this error had happened because in <code>Square.__init__()</code> I need to pass an argument for it to work. An explanation to this will be appreciated</p>