the project will allow the agent to interact with the objects using the python interpreter prompt in this world of graphical user interfaces and web applicationsyou might be wondering why we're creating such old-fashioned looking programs simply putboth windowed programs and web applications require lot of overhead knowledge and boilerplate code to make them do what is required if we were developing software using either of these paradigmswe' get so lost in gui programming or web programming that we' lose sight of the object-oriented principles we're trying to master luckilymost gui and web frameworks utilize an object-oriented approachand the principles we're studying now will help in understanding those systems in the future we'll discuss them both briefly in concurrencybut complete details are far beyond the scope of single book looking at our requirementsit seems like there are quite few nouns that might represent classes of objects in our system clearlywe'll need to represent property houses and apartments may need separate classes rentals and purchases also seem to require separate representation since we're focusing on inheritance right nowwe'll be looking at ways to share behavior using inheritance or multiple inheritance house and apartment are both types of propertiesso property can be superclass of those two classes rental and purchase will need some extra thoughtif we use inheritancewe'll need to have separate classesfor examplefor houserental and housepurchaseand use multiple inheritance to combine them this feels little clunky compared to composition or association-based designbut let' run with it and see what we come up with now thenwhat attributes might be associated with property classregardless of whether it is an apartment or housemost people will want to know the square footagenumber of bedroomsand number of bathrooms (there are numerous other attributes that might be modeledbut we'll keep it simple for our prototype if the property is houseit will want to advertise the number of storieswhether it has garage (attacheddetachedor none)and whether the yard is fenced an apartment will want to indicate if it has balconyand if the laundry is ensuitecoinor off-site both property types will require method to display the characteristics of that property at the momentno other behaviors are apparent rental properties will need to store the rent per monthwhether the property is furnishedand whether utilities are includedand if notwhat they are estimated to be properties for purchase will need to store the purchase price and estimated annual property taxes for our applicationwe'll only need to display this dataso we can get away with just adding display(method similar to that used in the other classes