Many thanks. Here is my effort (have not yet analysed where we differ):
class School ():
def init(self, name, level, numberOfStudents):
self._name = name
self._level = level
self._numberOfStudents = numberOfStudents
def getName(self):
return self._name
def getLevel(self):
return self._level
def getNumberOfStudents(self):
return self._numberOfStudents
def setNumberOfStudents(self, new_numberOfStudents):
if isinstance(new_numberOfStudents, int):
self._numberOfStudents = new_numberOfStudents
else:
raise TypeError
def repr(self):
return “A {level} level school named {name} with {numberOfStudents} students”.format(level = self._level, name = self._name, numberOfStudents = self._numberOfStudents)
****************************************************
class PrimarySchool(School):
def init(self, name, level, numberOfStudents, pickupPolicy):
super().init(name, level, numberOfStudents)
self._name = name
self._level = “primary”
self._numberOfStudents = numberOfStudents
self.pickupPolicy = pickupPolicy
def getpickupPolicy(self):
return self.pickupPolicy
def repr(self):
super().repr()
return “{name}'s pick-up policy is {pickupPolicy}”.format(name = self._name, pickupPolicy = self.pickupPolicy)
****************************************************
class HighSchool(School):
def init(self, name, level, numberOfStudents, *sportsTeams):
super().init(name, level, numberOfStudents)
self._name = name
self._level = “primary”
self._numberOfStudents = numberOfStudents
self.sportsTeams = sportsTeams
def getsportsTeams(self):
return self.sportsTeams
def repr(self):
super().repr()
return “{name} has these sports teams: {sportsTeams}”.format(name = self._name, sportsTeams = self.sportsTeams)
**************************************************
School class tests
a = School(“St Cuthbert’s”, “High”, 25)
print (a)
print("name a: " + a.getName())
print("level a: " + str(a.getLevel()))
a.setNumberOfStudents(200)
print("no of students after set a: " + str(a.getNumberOfStudents()))
**************************************************
PrimarySchool class tests
b = PrimarySchool(“Holmewood”, “Primary”, 56, “Pickup after 3pm”)
print (b)
print("Name b: " + b.getName())
print("level b: " + str(b.getLevel()))
print("pick-up policy b: " + str(b.getpickupPolicy()))
print("number of students b: " + str(b.getNumberOfStudents()))
**************************************************
HighSchool class tests
c = HighSchool(“Mill Hill”, “High”, 400, “rugby”, “hockey”, “cricket”)
print (c)
print("Name b: " + c.getName())
print("level b: " + str(c.getLevel()))
print("sports teams c: " + str(c.getsportsTeams()))
print("number of students c: " + str(c.getNumberOfStudents()))