from abc import *
class SchoolMember(metaclass=ABCMeta):
def __init__(self,name,age):
self.name = name
self.age = age
print('(Создан SchoolMember: {0})'.format(self.name))
@abstractmethod
def tell(self):
print('Имя:" {0}" Возраст:"'.format(self.name, self.age), end = ' ')
class Teacher(SchoolMember):
def __init__(self, name, age, salary):
SchoolMember.__init__(self, name, age)
self.salary = salary
print('(Создан Teacher: {0}'.format(self.name))
def tell(self):
SchoolMember.tell(self)
print('Зарплата: "{0:d}"'.format(self.salary))
class Student(SchoolMember):
def __init__(self, name, age, marks):
SchoolMember.__init__(self, name, age)
self.marks = marks
print('(Создан Student: {0}'.format(self.name))
def tell(self):
SchoolMember.tell(self)
print('Оценки: "{0:d}"'.format(self.marks))
t = Teacher('Mrs.Shrividya', 40, 30000)
s = Student('Swaroop', 25, 75)
# создание объекта класса SchoolMember приведет к ошибке
print()
members = [t,s]
for member in members:
member.tell()
ZnJvbSBhYmMgaW1wb3J0ICoKCmNsYXNzIFNjaG9vbE1lbWJlcihtZXRhY2xhc3M9QUJDTWV0YSk6CiAKICAgIGRlZiBfX2luaXRfXyhzZWxmLG5hbWUsYWdlKToKICAgICAgICBzZWxmLm5hbWUgPSBuYW1lCiAgICAgICAgc2VsZi5hZ2UgPSBhZ2UKICAgICAgICBwcmludCgnKNCh0L7Qt9C00LDQvSBTY2hvb2xNZW1iZXI6IHswfSknLmZvcm1hdChzZWxmLm5hbWUpKQoKICAgIEBhYnN0cmFjdG1ldGhvZAogICAgZGVmIHRlbGwoc2VsZik6CiAgICAgICAgcHJpbnQoJ9CY0LzRjzoiIHswfSIg0JLQvtC30YDQsNGB0YI6IicuZm9ybWF0KHNlbGYubmFtZSwgc2VsZi5hZ2UpLCBlbmQgPSAnICcpCgpjbGFzcyBUZWFjaGVyKFNjaG9vbE1lbWJlcik6CgogICAgZGVmIF9faW5pdF9fKHNlbGYsIG5hbWUsIGFnZSwgc2FsYXJ5KToKICAgICAgICBTY2hvb2xNZW1iZXIuX19pbml0X18oc2VsZiwgbmFtZSwgYWdlKQogICAgICAgIHNlbGYuc2FsYXJ5ID0gc2FsYXJ5CiAgICAgICAgcHJpbnQoJyjQodC+0LfQtNCw0L0gVGVhY2hlcjogezB9Jy5mb3JtYXQoc2VsZi5uYW1lKSkKCiAgICBkZWYgdGVsbChzZWxmKToKICAgICAgICBTY2hvb2xNZW1iZXIudGVsbChzZWxmKQogICAgICAgIHByaW50KCfQl9Cw0YDQv9C70LDRgtCwOiAiezA6ZH0iJy5mb3JtYXQoc2VsZi5zYWxhcnkpKQoKY2xhc3MgU3R1ZGVudChTY2hvb2xNZW1iZXIpOgogCiAgICBkZWYgX19pbml0X18oc2VsZiwgbmFtZSwgYWdlLCBtYXJrcyk6CiAgICAgICAgU2Nob29sTWVtYmVyLl9faW5pdF9fKHNlbGYsIG5hbWUsIGFnZSkKICAgICAgICBzZWxmLm1hcmtzID0gbWFya3MKICAgICAgICBwcmludCgnKNCh0L7Qt9C00LDQvSBTdHVkZW50OiB7MH0nLmZvcm1hdChzZWxmLm5hbWUpKQoKICAgIGRlZiB0ZWxsKHNlbGYpOgogICAgICAgIFNjaG9vbE1lbWJlci50ZWxsKHNlbGYpCiAgICAgICAgcHJpbnQoJ9Ce0YbQtdC90LrQuDogInswOmR9IicuZm9ybWF0KHNlbGYubWFya3MpKQoKdCA9IFRlYWNoZXIoJ01ycy5TaHJpdmlkeWEnLCA0MCwgMzAwMDApCnMgPSBTdHVkZW50KCdTd2Fyb29wJywgMjUsIDc1KQojINGB0L7Qt9C00LDQvdC40LUg0L7QsdGK0LXQutGC0LAg0LrQu9Cw0YHRgdCwIFNjaG9vbE1lbWJlciDQv9GA0LjQstC10LTQtdGCINC6INC+0YjQuNCx0LrQtQoKcHJpbnQoKQoKbWVtYmVycyA9IFt0LHNdCmZvciBtZW1iZXIgaW4gbWVtYmVyczoKICAgIG1lbWJlci50ZWxsKCkK