Я изучаю Пайтон по книге «A Byte of Python 2.0» (Для Пайтон 3) и на 108 странице этой книги (на русском) есть параграф, посвященный наследованию. Как объясняется, само наследование создано для упрощения жизни программисту. Но из примера, приведенного в том же параграфе, я не совсем понял, что именно там упрощается? Что вообще там наследуется? То, что не нужно создавать поля (если не ошибаюсь, а то для меня переменные - и в африке переменные, и в “классах” тоже)? Точнее сказать - определять их. Но тогда ведь в параметрах методов все-равно придется принимать и новосозданные поля из родительского класса? И надо опять редачить код метода в субклассах? И смысл этого наследования тогда?
Если я что-то не понял - объясните пожалуйста)
А вот и собственно сам код:
class SchoolMember: def __init__(self, name, age): self.name = name self.age = age print('(Создан ScoolMember: {0})'.format(self.name)) def tell(self): print('Имя:"{0}" Возраст:"{1}"'.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('(Создан Teacher: {0})'.format(self.name)) def tell(self): SchoolMember.tell(self) print('Зарплата: "{0:d}"'.format(self.marks)) t = Teacher('Slut Number One',25,900000) s = Student('Punk Number One',25,756891297) members = [t,s] for member in members: member.tell() input('Press Enter')