26fc8e35

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

Программирование метаклассов на 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, введение
Теория
Практика
Заключение

Справочник по электрическим кабелям,проводам и шнурам

Кабельную продукцию в зависимости от конструкций подразделяют на кабели, провода и шнуры.
Кабель — одна или более изолированных жил (проводников), заключенных, как правило, в металлическую или неметаллическую оболочку, поверх которой в зависимости от условий прокладки и эксплуатации может иметься соответствующий защитный покров, в который может входить броня.
Провод — одна неизолированная или одна и более изолированных жил, поверх которых в зависимости от условий прокладки и эксплуатации может иметься неметаллическая оболочка, обмотка и (или) оплетка волокнистыми материалами или проволокой.
Шнур — две или более изолированных гибких или особо гибких жил сечением до 1.5 мм2, скрученных или уложенных параллельно, поверх которых в зависимости от условий эксплуатации могут быть наложены неметаллическая оболочка и защитные покрытия.

Классификация кабельной продукции и ее основные элементы
Кабели, провода и шнуры для горных разработок и землеройных работ
Кабели контрольные, сигнализации и блокировки

Станционные, распределительные и шахтные кабели и провода связи
Токовые нагрузки на кабели, провода и шнуры


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