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

773123a3

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

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

Первый сайт на PHP

Когда-то давно, еще в прошлом веке, для того чтобы сделать сайт "на мировом уровне", достаточно было просто уметь делать web-страницы на HTML и обладать художественным вкусом. Спустя некоторое время требования усложнились: использование JavaScript и Dynamic HTML стало рутинным и дизайн сайта, не имеющего подобных "украшений", считался устаревшим. Ещё по прошествии небольшого времени правилом "хорошего тона" для корпоративного сайта стало применение сложных программ на Perl или C++, а создавать такие сайты стало по силам, пожалуй, лишь коллективам дизайнерских студий.
Однако простые web-дизайнеры не желали мириться с такой ситуацией, и ответом на их пожелания стало появление РНР - языка программирования, обладающего возможностями сложных скриптовых языков, но в то же время удивительно простого и легкого в изучении и применении. РНР расшифровывается как "PHP: Hypertext Preprocessor" (в названии используется такой прием, как рекурсия: наличествующая в расшифровке аббревиатура "РНР" вновь может быть расшифрована как "РНР: Hypertext Preprocessor" - и так до бесконечности). Этот язык благодаря своей простоте и мощности быстро завоевал огромную популярность среди web-мастеров, и количество сайтов, использующих РНР, увеличивается с каждым днем. Немаловажно и то, что он бесплатен для использования всеми желающими.

Немного о web-программировании
Авторизация средствами web-cepbepa
Гостевая книга
Преврати свой сайт в портал


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