Курс 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. Работа с эмодзи в Python
  2. Расчет времени выполнения
  3. Преобразование range в итератор
  4. Блок else в обработке исключений
  5. Работа с контекстными переменными
  6. Проекты на Python
  7. Создание уникального множества
  8. Руководство по Pymorphy2
  9. Метод Event.wait() в Python
  10. Новшества Flask 2.0
  11. Python reversed() функция
  12. Установка пакета в Python
  13. Установка Python3.7 и PIP
  14. Сортировка слиянием
  15. Реализация операции -= для пользовательского класса
  16. Многострочные строки в Python
  17. Введение в Python
  18. Лямбда-функции в Python
  19. Лямбда-функции в Python
  20. Переменная Шредингера
  21. Безопасные SQL-запросы в Python 3.11
  22. Выбор редактора кода.
  23. Проверка условий в Python
  24. Конкатенация строк в Python
  25. Возврат нескольких значений
  26. Перевернуть список в Python
  27. Работа со строками в Python
  28. Метод ipow для возведения в степень
  29. Работа с JSON данными в Python
  30. Расширение операции побитового «и» в Python
  31. Преобразование списка в словарь через генератор
  32. Лямбда-функции в defaultdict
  33. Переменная с нижним подчеркиванием
  34. Отправка HTTP-запросов с User-Agent
  35. Методы Python для работы с данными
  36. Библиотека sh: удобные команды терминала
  37. Многострочные комментарии в Python
  38. Работа с исключениями в Python
  39. Функция reduce() из модуля functools
  40. Автоматизация действий с Pyautogui
  41. Упрощение работы с JSON-данными в Python
  42. Установка Git и AWS CLI
  43. Срезы в Numpy
  44. Метод pos в Python
  45. Отображение HTML кода в Python
  46. Присвоение значений переменным в Python

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