Курс 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"

  1. Подсчет элементов в списке с Counter
  2. Динамические маршруты во Flask
  3. Декоратор Ajax required
  4. Проверка строки на палиндром
  5. Активация Matplotlib в Jupyter
  6. Инверсия списка и строки в Python
  7. Деление в Python
  8. Отправка POST-запроса в REST API
  9. Метод remove() для удаления элемента из списка
  10. Распаковка аргументов в Python
  11. Слияние словарей в Python 3.9
  12. Создание вложенных циклов for
  13. Разработка игры Pong с turtle
  14. Описание скриптов в README
  15. Форматирование кода на Python
  16. Декоратор проверки активности
  17. Модуль Antigravity в Python 3
  18. Создание циклической ссылки
  19. Очистка списка от False, None, 0, «»
  20. Создание и использование модулей в Python
  21. Аннотации типов в Python
  22. Python enumerate() функции
  23. Удаление дубликатов из списка
  24. Оператор += в Python
  25. Открытие и запись файлов
  26. Атрибуты объекта в Python
  27. Оператор «моржа» (Walrus Operator)
  28. Импорт в Python: список all
  29. Импортирование в Python
  30. Атрибуты класса и экземпляра в Python
  31. Удаление элементов по срезу
  32. Декораторы в Python
  33. Подчеркивание в REPL
  34. Преобразование Excel в PDF с Spire.XLS
  35. Цикл for в Python
  36. Транспонирование 2D-массива с помощью zip
  37. Принципы LSP и ISP в Python
  38. Измерение времени выполнения кода в Python
  39. Многоточие в Python
  40. Работа с файлами в Python
  41. Python Поверхностное Копирование
  42. Нахождение самого длинного слова в списке с помощью max
  43. Основы работы с os
  44. Запуск внешних программ с subprocess
  45. Построение графиков в Matplotlib
  46. Поиск шаблона в начале строки
  47. Создание словарей с defaultdict()
  48. Класс-оболочка для словарей
  49. Взаимодействие с внешними процессами в Python
  50. Оптимизация параметров в Python

Marketello читают маркетологи из крутых компаний