title: AttributeError: 'super' object has no attribute 'display'
body: <p>I am reading python: master the art of design
  in chapter 3 example: there is a huge example of inheritance
  it is about real estate application 
  I wrote the codes in Pycharm but I get this error :</p>
  
  <pre><code>AttributeError: 'super' object has no attribute 'display'
  </code></pre>
  
  <p>error is in class Rental: 
  ( I marked it in the code )</p>
  
  <p>I searched StackOverflow and find some other questions solutions but it didn't help me </p>
  
  <pre class="lang-py prettyprint-override"><code>class Property:
      def __init__(self, square_feet='', beds='', baths='', **kwargs):
          super().__init__(**kwargs)
          self.square_feet = square_feet
          self.num_bedrooms = beds
          self.num_bathrooms = baths
  
      def display(self):
          print("PROPERTY DETAILS")
          print("================")
          print("square footage: {}".format(self.square_feet))
          print("bedrooms: {}".format(self.num_bedrooms))
          print("bathrooms :{}".format(self.num_bathrooms))
          print()
  
      def prompt_init():
          return dict(square_feet=input("Enter the square feet: "),
                      beds=input("Enter number of bedrooms: "),
                      baths=input("Enter number of bathrooms: "))
  
      prompt_init = staticmethod(prompt_init)
  
  
  ######
  # without class function #      !!!!  validation function  !!!!!!!
  
  
  def get_valid_input(input_string, valid_option):
      input_string += "({})".format(", ".join(valid_option))
      response = input(input_string)
      while response.lower() not in valid_option:
          response = input(input_string)
      return response
  
  
  
  
  
  class House(Property):
      valid_garage = ("attached", "detached", "none")
      valid_fenced = ("yes", "no")
  
      def __init__(self, num_stories='', garage='', fenced='', **kwargs):
          super().__init__(**kwargs)
          self.num_stories = num_stories
          self.garage = garage
          self.fenced = fenced
  
      def display(self):
          super().display()
          print("HOUSE DETAILS")
          print("# of stories: {}".format(self.num_stories))
          print("garage: {}".format(self.garage))
          print("fenced yard: {}".format(self.fenced))
  
      def prompt_init():
          parent_init = Property.prompt_init()
          fenced = get_valid_input("Is the yard fenced?"
                                   , House.valid_fenced)
          garage = get_valid_input("Does the property have a garage?"
                                   , House.valid_garage)
          num_stories = input("How many stories? ")
          parent_init.update({
              "fenced": fenced,
              "garage": garage,
              "num_stories": num_stories
          })
          return parent_init
  
      prompt_init = staticmethod(prompt_init)
  
  
  
  ############### class with error
  class Rental:
      def __init__(self, rent='', furnished='', utilities='', **kwargs):
          super().__init__(**kwargs) . ### (problem is here)
          self.furnished = furnished
          self.utilities = utilities
          self.rent = rent
  
      def display(self):
          super().diplay()
          print("RENTAL DETAILS")
          print("rent: {}".format(self.rent))
          print("estimated utilities: {}".format(self.utilities))
          print("furnished: {}".format(self.furnished))
  
      def prompt_init():
          return dict(
              rent=input("What is the monthly rent? "),
              utilities=input("What are the estimated utilities? "),
              furnished=get_valid_input("is property furnished? ",
                                        ("yes", "no"))
          )
  
      prompt_init = staticmethod(prompt_init)
  
  
  class HouseRental(Rental, House):
      def prompt_init():
          init = House.prompt_init()
          init.update(Rental.prompt_init())
          return init
      prompt_init = staticmethod(prompt_init)
  
  
  init = HouseRental.prompt_init()
  house = HouseRental(**init)
  house.display()
  </code></pre>