Шаг 145. Классы и объекты. Классы и объекты. Определение более одного конструктора в классе
Шаг 146. Классы и объекты. Создание экземпляра без вызова init
Шаг 147. Классы и объекты. Расширение классов с помощью миксин (mixins)
Шаг 148. Классы и объекты. Реализация объектов с состоянием или конечных автоматов
Шаг 149. Классы и объекты. Вызов метода объекта с передачей имени метода в строке
Шаг 150. Классы и объекты. Реализация шаблона проектирования "Посетитель"
Шаг 151. Классы и объекты. Реализация шаблона "Посетитель" без рекурсии
Шаг 152. Классы и объекты. Управление памятью в циклических структурах данных
Шаг 153. Классы и объекты. Заставляем классы поддерживать операции сравнения
Шаг 154. Классы и объекты. Создание закешированных экземпляров
Шаг 155. Метапрограммирование (общие сведения)
Шаг 156. Метапрограммирование. Создание обертки для функции
Шаг 157. Метапрограммирование. Сохранение метаданных функции при написании декораторов
Шаг 158. Метапрограммирование. Снятие ("разворачивание") декоратора
Шаг 159. Метапрограммирование. Определение декоратора, принимающего аргументы
Шаг 160. Метапрограммирование. Определение декоратора с настраиваемыми пользователем атрибутами
Шаг 161. Метапрограммирование. Определение декоратора, принимающего необязательный аргумент
Шаг 162. Метапрограммирование. Принудительная проверка типов в функции с использованием декоратора