Курс 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. Генератор надежных паролей
  3. Операторы сравнения в Python
  4. Создание уникального множества
  5. Numpy: разбиение массивов
  6. Использование модуля math
  7. Установка и использование howdoi
  8. Создание пустых функций и классов в Python
  9. Поиск элементов BeautifulSoup
  10. Сравнение объектов в Python
  11. Возврат нескольких значений из функции
  12. Оператор объединения словарей
  13. Печать комбинаций в Python с Itertools
  14. Метод join для объединения строк
  15. Декодирование байтов в строку
  16. Тернарный оператор в Python
  17. Поиск наиболее частого элемента в списке
  18. Кортежи в Python: особенности и преимущества
  19. Декораторы с @wraps
  20. Функция map() в Python
  21. Генерация случайных чисел в Python
  22. Конвертация коллекций в Python
  23. Гибкие функции Python
  24. Философия Python
  25. Безопасные SQL-запросы в Python 3.11
  26. Применение функции map() с лямбда-функциями
  27. Замена текста с re.sub()
  28. Модуль math: основные функции
  29. Тестирование модели в PyTorch
  30. Ускорение выполнения кода в Python
  31. Оператор in в Python
  32. Функции с необязательными аргументами
  33. Метод rmatmul для пользовательских матриц
  34. Замер времени выполнения кода
  35. Декораторы с аргументами
  36. Многопоточность и асинхронное программирование в Python
  37. Функциональное программирование в Python
  38. Измерение времени выполнения с помощью time
  39. Комплексные числа в Python
  40. Справка по импортированным модулям
  41. Логирование с Logzero
  42. Декоратор total_ordering для сравнения объектов
  43. Создание списков в Python
  44. Установка Python — Простое руководство
  45. Виртуальные среды в Python
  46. Функция count() в Python

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