Курс 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. Бесконечные списки в Python
  3. PrettyTable: создание таблицы
  4. Flask: создание веб-приложений
  5. globals и locals
  6. Инициализация переменных
  7. Функция all() в Python
  8. Фильтрация данных в Python.
  9. Работа с YAML в Python
  10. Добавление элемента в список.
  11. Метод __getitem__ в Python
  12. Оператор морж в Python 3.8
  13. Работа с коллекциями Python
  14. Mad Libs Generator
  15. Декораторы в Python
  16. UserString в Python
  17. Функция zip() в Python
  18. Атрибуты класса и экземпляра
  19. Вызов внешних программ в Python с помощью sh
  20. PUT запрос для обновления данных
  21. Оператор «not» в Python
  22. Использование модуля __future__
  23. Оценка точности модели
  24. Создание списка через итерацию
  25. Генератор списка с условием if
  26. Искажение имен в Python
  27. Работа со строками в Python.
  28. ChainMap избыточные ключи
  29. Создание и использование модулей в Python
  30. Библиотека itertools: объединение списков
  31. Блок try…finally в Python
  32. Расчет времени выполнения программы
  33. Глобальные переменные в Python
  34. Работа с исключениями в Python
  35. Работа с изображениями Pillow
  36. Ветвление выражения в Python
  37. Обработка ошибок в Python
  38. Генерация чисел с range()
  39. Основы работы со строками в Python
  40. Команда %dhist — список посещенных каталогов
  41. Добавление кнопки в tkinter
  42. Роль запятой в Python
  43. Встраивание HTML в Jupyter Notebook
  44. Списки в Python: основы
  45. Декораторы в Python
  46. Оптимизация гиперпараметров с Scikit Optimize

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