Инструкции

Справочный раздел

В этом разделе Вы найдетё инструкции, справочники, и всевозможные хелпы по использованию программного обеспечения.

Разделы инструкций

В сети

Пользователей: 123
Из них просматривают:
Аналоги: 29. Видео: 1. Даташиты: 26. Инструкции: 11. Новости: 3. Обзор: 1. Остальное: 29. Советы: 9. Теги: 1. Форум: 13.
Участников: 2
Гостей: 121

Google , Яндекс , далее...
Рекорд 2375 человек онлайн установлен 26.12.2015.

Партнёры


Партнёры

Новые объявления

В настоящее время нет объявлений.
Оглавление

9.5 Наследование

Конечно, особенность языка не достойна называться "классом" без поддержки наследования. Определение производного класса с именем производный_класс выглядит следующим образом:

 

class производный_класс(базовый_класс):
    инструкция1
    .
    .
    .
    инструкцияN

 

Базовый класс (базовый_класс) должен быть определён в области видимости, в которой находится определение производного класса (производный_класс). Вместо имени базового класса можно использовать выражение, например, если базовый класс определён в другом модуле:

 

class производный_класс(модуль.базовый_класс):

 

Определение производного класса выполняется так же, как и определение базового класса. Сконструированный объект-класс помнит базовый — он используется для разрешения имен атрибутов: если запрошенный атрибут не найден в классе, поиск продолжается в базовом классе. Это правило применяется рекурсивно, если базовый класс, в свою очередь, является производным от другого класса. В создании экземпляра производного класса нет ничего особенного: производный_класс() порождает новый экземпляр класса.

Производные классы могут переопределить методы базовых классов. Метод базового класса, вызывающего другой определенный для него метод, может, на самом деле, вызывать метод производного класса, переопределившего этот метод (говоря в терминах C++, все методы в языке Python являются виртуальными).

В языке Python есть ограниченная поддержка множественного наследования. Определения класса с несколькими базовыми классами выглядит следующим образом:

 

class производный_класс(базовый_класс1, базовый_класс2, базовый_класс3):
    инструкция1
    .
    .
    .
    инструкцияN

 

Единственное правило, необходимое для объяснения семантики, — правило разрешения имён атрибутов. Поиск производится сначала в глубину, затем слева направо. Таким образом, если атрибут не найден в производный_класс, то он ищется сначала в базовый_класс1, затем (рекурсивно) в базовых классах класса базовый_класс1 и только потом в базовый_класс2 и т.д. (Для некоторых людей кажется более естественным другой порядок разрешения имен атрибутов — сначала в классах базовый_класс1, базовый_класс2, базовый_класс3 и только потом в базовых классах класса базовый_класс1. Однако в этом случае возникает зависимость результата от реализации каждого из базовых классов. С принятым же правилом, нет разницы между прямыми и унаследованными атрибутами базовых классов.)

Комментарии принадлежат их авторам. Мы не несем ответственности за их содержание.

Разное

Интересно

Проводите пайку только при выключенном телевизоре.
В противном случае закоротив дорожки (даже кратковременно), Вы введете новые неисправности.

Похожие инструкции