When working on the “School Catalogue” project I encounter this problem is that:
from abc import ABC, abstractmethod
class School(ABC):
name = None
level = None
numberOfStudents = None
def __init__(self, name, level, numberOfStudents):
self.name = name
self.level = level
self.numberOfStudents = numberOfStudents
def get_name(self):
return self.name
def get_level(self):
return self.level
def get_numberOfStudents(self):
return self.numberOfStudents
def setting_all(self, **args):
for i in items(args):
if(i[0] == "name"):
self.name = i[1]
elif(i[0] == "level"):
self.level = i[1]
elif(i[0] == "numberOfStudents"):
self.numberOfStudents = i[1]
else:
continue
**def __repr__(self):**
** return "name is: {} \n Level is: {} \n Number of student is: {}".format(str(self.name), str(self.level),** str(self.numberOfStudents))
class Primary(School):
def __init__(self, name, level, numberOfStudents, _pickupPolicy):
super().__init__(name, level, numberOfStudents)
self._pickupPolicy = _pickupPolicy
def get_pickupPolicy(self):
return self._pickupPolicy
def setting_all(self, **args):
super().setting_all(args)
self._pickupPolicy = args.get("pickupPolicy")
**def __repr__(self):**
** val = super().__repr__() **
** # return " name is: {}\n Level is: {}\n Number of student is: {}".format(str(self.name), str(self.level), str(self.numberOfStudents)) + "\n Pickup Policy is: {}".format(str(self._pickupPolicy))**
** return val + "\n Pickup Policy is: {}".format(str(self._pickupPolicy))**
k = Primary("Joe", 2, 4, "No refund")
print(k)
THe result is following:
<main.Primary object at 0x7fb21e7bc438>
Pickup Policy is: No refund
So why above code print out the address of the class instead of the string that is in the class?
Thanks for helping me