Курс 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. Работа с collections.Counter
  2. Объединение списков в Python
  3. Colorama: окрашивание текста в Python
  4. Оформление текста в консоли с TermColor
  5. Разделение строки с помощью re.split()
  6. Метод setitem в Python
  7. Преобразование кортежа в словарь.
  8. Библиотека sh: использование команд bash в Python
  9. Оператор walrus в Python
  10. Транспонирование 2D-массива с помощью zip
  11. Именованные срезы в Python
  12. Определение наиболее частого элемента с помощью collections.Counter
  13. Работа с комплексными числами
  14. Библиотека Chartify: руководство
  15. Каналы Senior: Python, Java, Frontend, SQL, C++
  16. Сериализация и десериализация объектов
  17. Карта бомбоубежищ в Москве и Питере
  18. Подписка на SelectelNews в Twitter
  19. Курс по дообучению ChatGPT
  20. Регистрация на хакатоне
  21. Запуск асинхронной корутины
  22. Принцип одной функции
  23. Функции высшего порядка в Python
  24. Модуль pprint: улучшение вывода данных
  25. Модуль itertools: комбинации и перестановки
  26. Удаление элементов из списка в Python.
  27. Метод invert для побитового отрицания
  28. Управление импортом в Python
  29. Поиск шаблона в начале строки
  30. Преобразование строки в число
  31. Переворот строки с использованием цикла
  32. Отступы в Python
  33. Генераторы в Python
  34. Импорт объектов из модулей
  35. Разделение строки с регулярными выражениями
  36. Создание Telegram-бота на Python
  37. Преобразование списков в словарь
  38. Циклы for в Python
  39. Работа с набором данных CIFAR10 в PyTorch
  40. Многопоточность в Python
  41. Названия столбцов в Python таблицах
  42. Переворот строки с помощью срезов
  43. Использование подчеркивания в REPL
  44. Работа с утверждениями в Python
  45. Преобразование чисел в восьмеричную строку
  46. Оператор continue в Python
  47. Метод join() с набором
  48. Метод join() для объединения элементов строки
  49. Создание директории в Python

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