Курс 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. Проверка подстроки в строке
  4. Переменные класса и экземпляра
  5. Получение ID текущего процесса
  6. Операции с матрицами в Python
  7. Декоратор Ajax required
  8. Python Enumerate
  9. Перебор элементов списка в Python
  10. Модуль inspect: получение информации о объектах
  11. Поиск простых чисел
  12. Конкатенация строк с помощью join()
  13. Печать месячного календаря
  14. Подписка на каналы разработчиков
  15. Блок else в обработке исключений
  16. Добавление кнопки в tkinter
  17. Работа с географическими данными.
  18. Принципы Zen of Python
  19. Настройка логгера Logzero
  20. Пропуск начальных строк с помощью dropwhile()
  21. Удаление файлов и папок в Python
  22. Расширение операции побитового «и» в Python
  23. Обработка элементов в Python
  24. Удаление ключа из словаря
  25. ChainMap.new_child() — добавление нового словаря
  26. Передача неизвестных аргументов в Python.
  27. Работа со строками в Python
  28. Работа с атрибутом dict
  29. Объединение списков с помощью zip
  30. Создание и операции с дробями
  31. Список и кортеж в Python
  32. Удаление ссылок в Python
  33. Операторы сравнения в Python
  34. Назначение максимального и минимального значения переменной в Python.
  35. Работа со словарями с defaultdict из collections
  36. Анализ текста на русском языке с помощью Pymystem3
  37. Lambda Functions in Python
  38. Фильтрация списков с itertools
  39. Извлечение аудио из видео
  40. Функции all и any в Python
  41. Методы Python для работы с данными
  42. Принципы SRP и OCP
  43. Основы работы со строками в Python
  44. Декораторы в Python
  45. Импорт с альтернативным именем
  46. Функция __init__ в Python
  47. Поиск файлов по шаблону
  48. PUT запрос для обновления данных

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