Добавить в корзинуПозвонить
Найти в Дзене
Old Programmer

Объектно-ориентированное программирование. Наследование (язык Python). Статья 7

Все ссылки на статьи и ролики моего канала Old Programmer: Мои статьи по объектно-ориентированному программированию: Наследование в объектно-ориентированном программировании на языке Python Продолжим наше рассмотрение объектно-ориентированного программирования, обратившись теперь к Python. Но несколько слов о предмете, который прямого отношения ООП не имеет. Речь идет о перегрузке. Перегрузкой функции называют возможность иметь в программе несколько разных функций с одним именем. Такие функции должны отличаться друг как минимум в одном из следующих параметров: тип возвращаемого значения, количество параметров, типы параметров. Смысл использования перегрузки заключается в том, что имя можно сделать говорящим и легко запоминаемым. Тогда можем использовать его в разных контекстах, при этом компилятор в зависимости от контекста будет подставлять вызовы разных функций. К чему это я? Ранее я говорил о перегрузке конструкторов (см. здесь). В Python перегрузка не требуется просто по причине о

Все ссылки на статьи и ролики моего канала Old Programmer:

Программирование. Тематическое оглавление моего Zen-канала (Old Programmer)
Old Programmer17 августа 2020
Список разделов канала Old Programmer, канала о программировании и программистах
Old Programmer27 мая 2021

Мои статьи по объектно-ориентированному программированию:

Объектно-ориентированное программирование. Наследование (С++). Статья 6
Old Programmer6 августа 2020
Объектно-ориентированное программирование. Конструкторы (С++). Статья 5
Old Programmer4 августа 2020
Объектно-ориентированное программирование. Простой пример на Python. Статья 4
Old Programmer1 августа 2020
Объектно-ориентированное программирование (язык Python). Статья 3
Old Programmer28 июля 2020
Объектно-ориентированное программирование (C++). Статья 2 (конструкторы и деструкторы)
Old Programmer27 июля 2020
Объектно-ориентированное программирование (C++). Статья 1 (динамические и статические объекты, три кита ООП)
Old Programmer23 июля 2020

Наследование в объектно-ориентированном программировании на языке Python

Продолжим наше рассмотрение объектно-ориентированного программирования, обратившись теперь к Python. Но несколько слов о предмете, который прямого отношения ООП не имеет. Речь идет о перегрузке. Перегрузкой функции называют возможность иметь в программе несколько разных функций с одним именем. Такие функции должны отличаться друг как минимум в одном из следующих параметров: тип возвращаемого значения, количество параметров, типы параметров. Смысл использования перегрузки заключается в том, что имя можно сделать говорящим и легко запоминаемым. Тогда можем использовать его в разных контекстах, при этом компилятор в зависимости от контекста будет подставлять вызовы разных функций. К чему это я? Ранее я говорил о перегрузке конструкторов (см. здесь). В Python перегрузка не требуется просто по причине очень гибкого механизма передачи параметров. Этой теме я посвящу одну из следующих статей.

Обратимся теперь к наследованию в Python. Соответственно и о перегрузке конструкторов можно здесь забыть. Но остается вопрос о вызове родительских методов из дочерних классов. В остальном все очень похоже с тем, что мы уже видели в C++.

Рассмотрим программу 38.py. Я думаю вам понятно, что класс B является дочерним от класса A. И еще один важный момент связан с методом super(). С помощью него вызываем методы родительского класса. Другой способ вызова это использование имени предка, например, так: A.__init__(10). Попробуйте переписать программу 38.py используя такой вызов.

Конечно, у читателя наверное, возник вопрос: а как все будет выглядеть, если наследований будет больше. В одной из будущих статей рассмотрим и этот вопрос.

Ну вот сегодня и все. Пока! Программируем и подписываемся на мой канал Old Programmer.

Программа 38.py
Программа 38.py