python-na-praktike

Создание качественных программ.

Марк Саммерфилд "Python на практике" ДМК Пресс, 2014 год, 338 стр.(16,8 мб. djvu)

Вы достаточно хорошо знаете Python и хотели бы лучше использовать свои знания на практике? Тогда эта книга для вас. Автор в книге покажет вам как писать на Python более качественные программы, как их сделать быстрее, надежнее и производительнее, удобными в использовании и сопровождении.

В книге много практических примеров рассматриваемых по таким основным направлениям, как: использование паттернов, повышение быстродействия, с помощью распараллеливания, многопоточности и использования Cython (что заметно сократит время разработки кода), а также высокоуровневого сетевого программирования и работы с графикой (с помощью Tkinter из стандартной библиотеки) - то есть по самым актуальным направлениям Python-программирования.

В книге описаны наиболее полезные паттерны и проиллюстрированы на примерах, автор объясняет почему некоторые из них редко используются пишущими на Python. Издание будет интересно программистам использующим Python на практике, но может заинтересовать и начинающих пользователей языка, в плене наработки профессионального опыта.

ISBN 978-0-321-90563-5 (англ.)
ISBN 978-5-97060-095-5 (рус.)

Оглавление.

Глава 1. Порождающие паттерны проектирования в Python 16
1.1. Паттерн Абстрактная фабрика 161
1.1. Классическая Абстрактная фабрика 17
1.1.2. Абстрактная фабрика в духе Python 20
1.2. Паттерн Построитель 22
1.3. Паттерн Фабричный метод 28
1.4. Паттерн Прототип 37
1.5. Паттерн Одиночка 38

Глава 2. Структурные паттерны проектирования в Python 40
2.1. Паттерн Адаптер 40
2.2. Паттерн Мост 46
2.3. Паттерн Компоновщик 52
2.3.1. Классическая иерархия составных и несоставных объектов 53
2.3.2. Единый класс для составных и несоставных объектов 57
2.4. Паттерн Декоратор 60
2.4.1. Декораторы функций и методов 61
2.4.2. Декораторы классов 67
2.5. Паттерн Фасад 74
2.6. Паттерн Приспособленец 79
2.7. Паттерн Заместитель 82

Глава 3. Поведенческие паттерны проектирования в Python 88
3.1. Паттерн Цепочка ответственности 88
3.1.1. Традиционная Цепочка 89
3.1.2. Цепочка на основе сопрограмм 91
3.2. Паттерн Команда 95
3.3. Паттерн Интерпретатор 99
3.3.1. Вычисление выражения с помощью еуа1() 100
3.3.2. Исполнение кода с помощью ехес() 104
3.3.3. Исполнение кода в подпроцессе 107
3.4. Паттерн Итератор 112
3.4.1. Итераторы, следующие протоколу последовательности 112
3.4.2. Реализация итераторов с помощью функции iter() с двумя аргументами 113
3.4.3. Итераторы на базе протокола итераторов 115
3.5. Паттерн Посредник 118
3.5.1. Традиционный Посредник 119
3.5.2. Посредник на основе сопрограмм 123
3.6. Паттерн Хранитель 125
3.7. Паттерн Наблюдатель 125
3.8. Паттерн Состояние 130
3.8.1. Чувствительные к состоянию методы 133
3.8.2. Определяемые состоянием методы 135
3.9. Паттерн Стратегия 136
3.10. Паттерн Шаблонный метод 139
3.11. Паттерн Посетитель 142
3.12. Пример: пакет обработки изображений 144
3.12.1. Общий модуль обработки изображений 146
3.12.2. Обзор модуляХрт 156
3.12.3. Модуль-обертка PNG 159

Глава 4. Высокоуровневый параллелизм в Python 162
4.1. Распараллеливание задач с большим объемом вычислений 166
4.1.1. Очереди и многопроцессная обработка 169
4.1.2. Будущие объекты и многопроцессная обработка 175
4.2. Распараллеливание задач, ограниченных скоростью ввода-вывода 178
4.2.1. Очереди и многопоточность 180
4.2.2. Будущие объекты и многопоточность 185
4.3. Пример: приложение с параллельным ГИП 188
4.3.1. Создание ГИП 190
4.3.2. Модуль ImageScaleWorker 198
4.3.3. Как ГИП обрабатывает продвижение 201
4.3.4. Как ГИП обрабатывает выход из программы 203

Глава 5. Расширение Python 205
5.1. Доступ к написанным на С библиотекам с помощью пакета ctypes 207
5.2. Использование Cython 215
5.2.1. Доступ к написанным на С библиотекам с помощью Cython 215
5.2.2. Создание Cython-модулей для повышения производительности 222
5.3. Пример: ускоренная версия пакета Image 228

Глава 6. Высокоуровневое сетевое программирование на Python 233
6.1. Создание приложений на базе технологии XML-RPC 234
6.1.1. Обертка данных 235
6.1.2. Разработка сервера XML-RPC 239
6.1.3. Разработка клиента XML-RPC 241
6.2. Создание приложений на базе технологии RPyC 251
6.2.1. Потокобезопасная обертка данных 251
6.2.2. Разработка сервера RPyC 257
6.2.3. Разработка клиента RPyC 260

Глава 7. Графические интерфейсы пользователя на Python и Tkinter 264
7.1. Введение в Tkinter 267
7.2. Создание диалоговых окон с помощью Tkinter 269
7.2.1. Создание диалогового приложения 271
7.2.2. Создание диалоговых окон в приложении 280
7.3. Создание приложений с главным окном с помощью Tkinter 290
7.3.1. Создание главного окна 292
7.3.2. Создание меню 294
7.3.3. Создание строки состояния с индикаторами 297

Глава 8. Трехмерная графика на Python с применением OpenGL 301
8.1. Сцена в перспективной проекции 303
8.1.1. Создание программы Cylinder с помощью PyOpenGL.304
8.1.2. Создание программы Cylinder с помощью pyglet 309
8.2. Игра в ортографической проекции 311
8.2.1. Рисование сцены с доской 314
8.2.2. Обработка выбора объекта на сцене 317
8.2.3. Обработка взаимодействия с пользователем 319
Приложение А. Эпилог 323
Приложение В. Краткая библиография 325
Предметный указатель 329

Скачать книгу бесплатно16,8 мб. djvu