Create two files; a module defining 4 classes and an executable program that tes
ID: 3666292 • Letter: C
Question
Create two files; a module defining 4 classes and an executable program that tests the classes. The module file defines a superclass Edifice (supplied below) and 3 subclasses that you must code.
class Edifice:
def __init__(self,storeys,area):
self.__storeys = storeys
self.__area = area
def show_info(self):
print('Storeys:',self.__storeys,', floor area:',self.__area)
class Home:
inherits from Edifice and adds a numeric attribute for number of bedrooms.
overrides the show_info() method by:
calling the Edifice class show_info() method to display the storeys and area attributes.
printing the purpose of a home and the number of bedrooms.
class Factory:
Inherits from Edifice and adds a string attribute for the product manufactured by the factory.
overrides the show_info() method by:
calling the Edifice class show_info() method to display the storeys and area attributes.
printing the purpose of a factory and the product it manufactures.
class Commercial:
inherits from Edifice and adds a string attribute for the usage of the commercial building.
overrides the show_info() method by:
calling the Edifice class show_info() method to display the storeys and area attributes.
printing the purpose of the commercial building and the usage.
In the executable file's main function:
create a Home instance and execute its show_info() method.
create a Factory instance that manufactures automobiles and execute its show_info() method.
create a Commercial instance to represent an office building and execute its show_info() method.
create another Commercial instance to represent a mall and execute its show_info() method.
SAMPLE OUTPUT
Home
Storeys: 2 , floor area: 3000
For human habitation: 3 bedrooms
Factory
Storeys: 1 , floor area: 300000
For manufacturing automobiles
Commercial
Storeys: 12 , floor area: 48000
Commercial building offices
Commercial
Storeys: 2 , floor area: 100000
Commercial building retailing
Explanation / Answer
class Edifice:
def __init__(self,storeys,area):
self.__storeys = storeys
self.__area = area
def show_info(self):
print('Storeys:',self.__storeys,', floor area:',self.__area)
class Home(Edifice):
def __init__(self,storeys,area,noRooms):
self.__storeys = storeys
self.__area = area
self.__noRooms = noRooms
def show_info(self):
print('Storeys:',self.__storeys,', floor area:',self.__area,', Number of Rooms:',self.__noRooms)
class Factory(Edifice):
def __init__(self,storeys,area,productProperty):
self.__storeys = storeys
self.__area = area
self.__productProperty = productProperty
def show_info(self):
print('Storeys:',self.__storeys,', floor area:',self.__area,', Product Property :',self.__productProperty)
class Commercial(Edifice):
def __init__(self,storeys,area,usage):
self.__storeys = storeys
self.__area = area
self.__usage = usage
def show_info(self):
print('Storeys:',self.__storeys,', floor area:',self.__area,', Usage Property :',self.__usage)
home=Home()
home.show_info('2','3000','3')
fact=Factory()
fact.show_info('1','300000','For manufacturing Automobiles')
com=HoCommercialme()
com.show_info('2','100000','Commercial Building Retailing')