Курс 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"
- Работа с collections.Counter
- Объединение списков в Python
- Colorama: окрашивание текста в Python
- Оформление текста в консоли с TermColor
- Разделение строки с помощью re.split()
- Метод setitem в Python
- Преобразование кортежа в словарь.
- Библиотека sh: использование команд bash в Python
- Оператор walrus в Python
- Транспонирование 2D-массива с помощью zip
- Именованные срезы в Python
- Определение наиболее частого элемента с помощью collections.Counter
- Работа с комплексными числами
- Библиотека Chartify: руководство
- Каналы Senior: Python, Java, Frontend, SQL, C++
- Сериализация и десериализация объектов
- Карта бомбоубежищ в Москве и Питере
- Подписка на SelectelNews в Twitter
- Курс по дообучению ChatGPT
- Регистрация на хакатоне
- Запуск асинхронной корутины
- Принцип одной функции
- Функции высшего порядка в Python
- Модуль pprint: улучшение вывода данных
- Модуль itertools: комбинации и перестановки
- Удаление элементов из списка в Python.
- Метод invert для побитового отрицания
- Управление импортом в Python
- Поиск шаблона в начале строки
- Преобразование строки в число
- Переворот строки с использованием цикла
- Отступы в Python
- Генераторы в Python
- Импорт объектов из модулей
- Разделение строки с регулярными выражениями
- Создание Telegram-бота на Python
- Преобразование списков в словарь
- Циклы for в Python
- Работа с набором данных CIFAR10 в PyTorch
- Многопоточность в Python
- Названия столбцов в Python таблицах
- Переворот строки с помощью срезов
- Использование подчеркивания в REPL
- Работа с утверждениями в Python
- Преобразование чисел в восьмеричную строку
- Оператор continue в Python
- Метод join() с набором
- Метод join() для объединения элементов строки
- Создание директории в Python















