Питон - статьи

         

Питон - статьи

Программирование метаклассов на Python, часть 2

Метаклассы: что мы не рассмотрели в первой статье
Воплощение (instantiation) или наследование (inheritance)
Листинг 1. Типичная иерархия наследования
Листинг 2. Тестирование родословной
Метаклассы или предки
Листинг 3. Наследование атрибутов
Листинг 4. Атрибуты в экземплярах
Листинг 5. Атрибуты и метаклассы
Листинг 6. Комбинирование базового класса и метакласса
Листинг 7. Разрешение метаклассов и базовых классов

Листинг 8. Задание атрибута в метаклассе
Еще о магии классов
Листинг 9. Настройка вывода класса на печатающее устройство
Методы класса в сравнении с метаметодами
Листинг 10. Метаметоды и методы класса
Листинг 11. Вызов метаметода
Листинг 12. Магический метод метакласса
Листинг 13. Немагический метод метакласса
Конфликты метаклассов
Листинг 14. Конфликты метаклассов

Листинг 15. Разрешение конфликта метаклассов вручную
Заключение
Ресурсы

Питон - статьи

Создание декларативных мини-языков

Программирование как утверждение, а не как инструкция
Листинг 1. Пример системы линейных уравнений
Листинг 2. Пример на языке Prolog - family.pro
Листинг 3. Пример для EBNF
Листинг 4. Объявление типа XML-документа
Python как интерпретатор в сравнении с Python как средой
Магия интроспекции
Листинг 5. Пример PLY
Листинг 6. Использование пространства имен импортированного модуля
Листинг 7. basic_lex.py

Листинг 8. magic_lex.py
Листинг 9. polymorphic_lex
Магия наследования
Листинг 10. Объявления правил gnosis.xml.validity
Листинг 11. Класс gnosis.xml.validity.Seq
Когда объявлять
Ресурсы

Питон - статьи

Множественная диспетчеризация
Обобщение полиморфизма с помощью мультиметодов
Что такое полиморфизм?

Листинг 1. Процедурный выбор ветвей кода по типу объекта
Листинг 2. Реализация метода .meth() с помощью Foo и Bar
Полная реализация полиморфизма
Листинг 3. Множественная диспетчеризация Foo и Bar
Листинг 4. Явный вызов и вызов функции при диспетчеризации
Улучшение наследования
Листинг 5. Наследование для расширения возможностей
Листинг 6. Мультиметоды для расширения возможностей
Передача диспетчеризации
Листинг 7. Автоматическое воспроизведение диспетчеризации

Листинг 8. Программирование с ручной передачей
Замечания выполнении в многонитевой среде
Листинг 9. Клонирование для безопасности нити
Ресурсы

Питон - статьи

WSGI, введение
Теория
Практика
Заключение

Содержание раздела