- Часть I. Вводное руководство
- Глава 2. Использование интерпретатора
- 2.2. Интерпретатор и его среда
- 9.3.1. Синтаксис определения класса
9.3.1. Синтаксис определения класса
Простейшая модель определения класса выглядит следующим образом:
class имя класса:
инструкция1
.
.
.
инструкцияN
Определение класса, подобно определению функции (инструкция class, как и def), должно быть выполнено перед тем, как класс можно будет использовать. (Предполагается, что Вы можете поместить определение класса в одну из ветвей инструкции if или в тело функции.)
На практике инструкции внутри определения класса обычно являются определениями функций, но разрешены, и иногда полезны, другие инструкции. Определение функции внутри класса имеет специфическую форму записи списка аргументов, продиктованную соглашениями по вызову методов. Мы вернемся к этим особенностям позже.
Когда выполняется определение класса, создаётся новое пространство имён и используется в качестве локальной области видимости при выполнении инструкций в теле определения. Таким образом, все присваивания производятся именам из нового пространства имён. В частности, определение функции создает соответствующее имя в пространстве имён класса.
По окончании выполнения определения функции, создается объект-класс. По существу он является "оболочкой" пространства имён, созданного определением класса. В следующем разделе мы расскажем об объектах-классах более подробно. Исходная область видимости (которая была перед выполнением определения класса) восстанавливается, и объект-класс привязывается к имени класса (в приведённом примере — имя_класса) в пространстве имён, соответствующему исходной области видимости.