From 1fea3a67382554bf48f5fb72ae85702858daaf2d Mon Sep 17 00:00:00 2001 From: tmeissner Date: Mon, 8 Sep 2014 00:16:57 +0200 Subject: [PATCH] added class House which inherits from class Property --- python_3_oop/chapter03/real_estate.py | 37 ++++++++++++++++++++++++--- 1 file changed, 34 insertions(+), 3 deletions(-) diff --git a/python_3_oop/chapter03/real_estate.py b/python_3_oop/chapter03/real_estate.py index dcf3419..c90e68d 100644 --- a/python_3_oop/chapter03/real_estate.py +++ b/python_3_oop/chapter03/real_estate.py @@ -24,8 +24,6 @@ class Property: beds=input("Enter number of bedrooms: "), baths=input("Enter number of baths: ")) - #prompt_init = staticmethod(prompt_init) - class Apartment(Property): @@ -33,7 +31,7 @@ class Apartment(Property): valid_laundries = ("coin", "ensuite", "none") valid_balconies = ("yes", "no", "solarium") - def __init__(self, balcony="", laundry="", **kwargs): + def __init__(self, balcony = "", laundry = "", **kwargs): super().__init__(**kwargs) self.balcony = balcony self.laundry = laundry @@ -58,6 +56,39 @@ class Apartment(Property): return parent_init +class House(Property): + + # class variables + valid_garage = ("attached", "detached", "none") + valid_fenced = ("yes", "no") + + def __init__(self, num_stories = "", garage = "", fenced = "", **kwargs): + super().__init__(**kwargs) + self.garage = garage + self.fenced = fenced + self.num_stories = num_stories + + def display(self): + super().display() + print("HOSE DETAILS") + print ("# of stories: {}".format(self.num_stories)) + print ("garage: {}".format(self.garage)) + print ("fenced yard: {}".format(self.fenced)) + + @staticmethod + def prompt_init(): + parent_init = Property.prompt_init() + fenced = get_valid_input("Is the yard fenced?", House.valid_fenced) + garage = get_valid_input("Is there 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 + + def get_valid_input(input_string, valid_options): input_string += " ({}) ".format(", ".join(valid_options))