Курс Python → Переопределение метода
Переопределение в Python — это механизм, который позволяет изменить поведение метода в дочернем классе, переопределяя его в базовом классе. Это позволяет классам наследовать методы и свойства от других классов, но при необходимости изменить их поведение. Например, если у нас есть базовый класс Animal с методом make_sound(), который возвращает просто «Издает звук», мы можем создать дочерний класс Cat, где переопределим метод make_sound() так, чтобы он возвращал «Мяу», а также дочерний класс Dog, где метод make_sound() вернет «Гав».
Для переопределения метода в Python достаточно объявить метод с тем же именем в дочернем классе, что и в базовом классе. Таким образом, при вызове метода make_sound() для объектов класса Cat будет использоваться переопределенная версия метода из класса Cat, а для объектов класса Dog — из класса Dog. Это позволяет добиться более точного и специфичного поведения методов в зависимости от конкретного класса.
class Animal:
def make_sound(self):
return "Издает звук"
class Cat(Animal):
def make_sound(self):
return "Мяу"
class Dog(Animal):
def make_sound(self):
return "Гав"
cat = Cat()
dog = Dog()
print(cat.make_sound()) # Вывод: Мяу
print(dog.make_sound()) # Вывод: Гав
В данном примере мы создали базовый класс Animal с методом make_sound(), который возвращает просто «Издает звук». Затем мы создали два дочерних класса Cat и Dog, где переопределили метод make_sound() для каждого класса, чтобы он возвращал соответствующий звук для каждого животного. При создании объектов cat и dog и вызове метода make_sound() для каждого из них, мы получаем ожидаемые результаты — «Мяу» для объекта cat и «Гав» для объекта dog.
Другие уроки курса "Python"
- Оптимизация интернирования строк
- Форматирование кода на Python
- Numpy: объединение массивов
- Функции с необязательными аргументами
- Лимиты на ресурсы Python
- Операторы объединения в Python 3.9
- Управление контекстом выполнения кода
- Проверка существования переменной с оператором :=
- Метод join() для объединения элементов строки
- Открытие, чтение и закрытие файла
- Генераторы списков в Python
- Установка Home Assistant
- Оператор walrus в Python
- JMESPath в Python
- Метод is_absolute() для PurePath
- Многострочные строки в Python
- Создание функций высшего порядка
- Работа с collections в Python
- Сравнение def и lambda-функций
- Работа с очередями в Python
- Работа с утверждениями в Python
- Функция zip() в Python
- Явный импорт переменных
- Кортеж в Python: создание, доступ, изменение
- Ветвление выражения в Python
- Работа с временем в Python
- Пропуск начальных строк с помощью dropwhile()
- Создание новой даты в Python
- Поиск индекса элемента
- Операции со строками в Python
- Приближение чисел в Python
- Удаление ключа из словаря в Python
- Поиск самого частого элемента
- Метод enumerate() в Python
- Шаблоны Flask: условия и циклы
- Просмотр файла в Jupyter Noteboo
- Обезопасьте ввод данных
- Методы работы со строками в Python
- Эффективная конкатенация строк с использованием join()
- Инверсия списков и строк в Python
- Проверка наличия элемента в списке
- Создание вкладок с TKinter
- Подсчет частоты элементов с Counter
- Безопасные SQL-запросы в Python 3.11
- Считывание бинарного файла в Python
- Отправка HTTP-запросов в Python
- Именованные срезы в Python















