Курс 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. Запрос DELETE с библиотекой requests
  2. inspect в Python: анализ кода
  3. Работа с файлами в Python
  4. Создание копии списка в Python
  5. Запуск файлового сервера
  6. Создание детектора плагиата
  7. Особенности ключей словаря в Python
  8. Навыки Python: строки, типы данных
  9. Анонимные функции Lambda
  10. Метод add для класса Vector
  11. Сортировка в Python
  12. Оператор space-invader
  13. Печать в одной строке
  14. Генераторы в Python
  15. Логирование в Python
  16. Частичное применение функций в Python
  17. Управление памятью в numpy.
  18. Профилирование кода на Python
  19. Копирование файлов с shutil()
  20. Проблема сравнения словарей
  21. Подсчет вхождений элементов
  22. Обработка ошибок ввода данных
  23. JSON-esque в Python
  24. Оператор «моржа» (Walrus Operator)
  25. Удаление эмодзи с помощью pandas
  26. Оператор «not» в Python
  27. Возвращение нескольких значений через кортеж или класс
  28. Группы исключений в Python
  29. Атрибуты класса и экземпляра
  30. Python: динамическая типизация и проверка типов
  31. Нахождение максимального значения и его индекса в списке
  32. Создание и операции с дробями
  33. Проверка версии Python
  34. Область видимости переменных в Python
  35. Ветвление выражения в Python
  36. Удаление элемента по индексу в Python
  37. Форматирование строк в Python
  38. Модуль os в Python: работа с файлами
  39. Управление браузером с Selenium
  40. Метод join() для объединения элементов строки
  41. Обмен данными с asyncio.Queue
  42. Явный импорт в Python

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