Курс 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. Мониторинг работы программы Py-spy
  2. Операции с кортежами
  3. Работа с библиотекой xkcd
  4. Метод Enumerate() для списков
  5. Изменение IP-адреса в Python
  6. Управление сессиями в Python
  7. Лямбда-функции в Python
  8. Область видимости переменных
  9. Поиск индекса элемента в списке
  10. Функция zip() для объединения списков
  11. Переопределение метода __floordiv__
  12. List Comprehension Tutorial
  13. Синхронизация доступа к ресурсам
  14. Вложенные функции в Python
  15. Принцип одной функции
  16. Создание новых списков в Python
  17. Контекстный менеджер в Python
  18. Метод index() в Python
  19. Экспорт данных в файл.
  20. Удаление элементов по срезу
  21. Подсчет часто встречающихся элементов
  22. Многострочные комментарии в Python
  23. Преобразование данных в Python
  24. Повторение элементов в Python
  25. Срезы в Numpy
  26. Решение переменной Шредингера
  27. Кортежи в Python: особенности и преимущества
  28. Метод count в Python: почему count(», ») возвращает 4?
  29. Форматирование строк в Python
  30. Преобразование строк в числа с плавающей запятой
  31. Итерации в Python
  32. Функция sleep() в Python
  33. Добавление элемента к кортежу
  34. JSON в Python: модуль, dump, dumps, load
  35. Структура строк в Python
  36. Изменение логики работы с временем
  37. Настройка нарезки списков
  38. Передача словаря через **kwargs
  39. Упрощение условных выражений с тернарным оператором
  40. Повторение и перенос строки
  41. Метод count() для списка
  42. Исключение NotImplementedError
  43. Удаление дубликатов из списка с помощью dict.fromkeys
  44. Замена символов в Python

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