Курс 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. lru_cache оптимизация функций
  3. Генераторы по генератору
  4. Работа с модулем os в Python
  5. Логирование с Loguru
  6. Работа с CSV файлами в Python
  7. Метод gt в Python
  8. Оформление кода на Python
  9. Печать комбинаций в Python с Itertools
  10. 9 уловок для чистого кода
  11. Counter() — подсчет элементов
  12. Каналы Senior: Python, Java, Frontend, SQL, C++
  13. Метод ifloordiv для пользовательских классов
  14. Перехват исключений в Python
  15. Транспонирование 2D-массива с помощью zip
  16. Проверка памяти объекта
  17. Округление в Python
  18. Замена подстроки
  19. Работа с комплексными числами
  20. Разделение функций на этапы
  21. Функции all() и any() в Python
  22. Встроенные функции Python
  23. Частичное совпадение пользовательского ввода в Python 3.10
  24. Введение в Python
  25. Декодирование байтов в строку
  26. Объединение словарей в Python 3.5+
  27. Python Метод del.
  28. Работа с файловой системой в Python
  29. Уникальные значения из списка
  30. Манипуляция формой массива в Numpy
  31. Регулярные выражения: метод match
  32. Изучение объектов с помощью dir()
  33. Область видимости переменных в Python
  34. Работа с множествами в Python
  35. Генераторы в Python
  36. Активация Matplotlib в Jupyter
  37. Установка и использование pyshorteners
  38. Параллельные вычисления в Python
  39. Python: динамическая типизация и проверка типов
  40. Работа с итераторами в Python
  41. *args и **kwargs в Python
  42. Оператор += в Python
  43. Непрерывная проверка в Python
  44. Цикл for с enumerate() в Python
  45. Установка и использование библиотеки google
  46. Объединение строк с помощью метода join
  47. Замена переменных в Python

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