Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗pyOpIhOPM 32 of 174 menu
◀ ▶

Переопределение методов родителя в ООП в Python

Класс-потомок может переопределить метод родителя, создав метод с таким же именем. Давайте посмотрим на примере. Пусть у нас есть следующий родительский класс:

class User: def __init__(self): self.__name = None def set_name(self, name): self.__name = name def get_name(self): return self.__name

Давайте в классе-потомке создадим одноименный метод:

class Student(User): def set_name(self, name): pass

Как правило, переопределение методов родителя нужно для того, чтобы изменить или дополнить поведение этого метода. Давайте в нашем случае добавим проверку длины имени:

class Student(User): def set_name(self, name): if len(name) > 0: self.__name = name else: print('student name error')

Давайте убедимся в том, что вызывается именно переопределенный метод. Для начала создадим объект класса потомка:

student = Student()

Теперь вызовем наш метод, передав в него корректное значение:

student.set_name('john')

А теперь вызовем метод, передав в него некорректное значение. В результате увидим сообщение об ошибке:

student.set_name('') # ошибка

В классе User сделайте геттер и сеттер возраста.

В классе Employee переопределите сеттер возраста и сделайте в нем проверку на то, что возраст от 18 до 65 лет.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить