Курс 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. Оптимизация интернирования строк
  2. Форматирование кода на Python
  3. Numpy: объединение массивов
  4. Функции с необязательными аргументами
  5. Лимиты на ресурсы Python
  6. Операторы объединения в Python 3.9
  7. Управление контекстом выполнения кода
  8. Проверка существования переменной с оператором :=
  9. Метод join() для объединения элементов строки
  10. Открытие, чтение и закрытие файла
  11. Генераторы списков в Python
  12. Установка Home Assistant
  13. Оператор walrus в Python
  14. JMESPath в Python
  15. Метод is_absolute() для PurePath
  16. Многострочные строки в Python
  17. Создание функций высшего порядка
  18. Работа с collections в Python
  19. Сравнение def и lambda-функций
  20. Работа с очередями в Python
  21. Работа с утверждениями в Python
  22. Функция zip() в Python
  23. Явный импорт переменных
  24. Кортеж в Python: создание, доступ, изменение
  25. Ветвление выражения в Python
  26. Работа с временем в Python
  27. Пропуск начальных строк с помощью dropwhile()
  28. Создание новой даты в Python
  29. Поиск индекса элемента
  30. Операции со строками в Python
  31. Приближение чисел в Python
  32. Удаление ключа из словаря в Python
  33. Поиск самого частого элемента
  34. Метод enumerate() в Python
  35. Шаблоны Flask: условия и циклы
  36. Просмотр файла в Jupyter Noteboo
  37. Обезопасьте ввод данных
  38. Методы работы со строками в Python
  39. Эффективная конкатенация строк с использованием join()
  40. Инверсия списков и строк в Python
  41. Проверка наличия элемента в списке
  42. Создание вкладок с TKinter
  43. Подсчет частоты элементов с Counter
  44. Безопасные SQL-запросы в Python 3.11
  45. Считывание бинарного файла в Python
  46. Отправка HTTP-запросов в Python
  47. Именованные срезы в Python

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