Python на практике: Создание качественных программ с использованием параллелизма, библиотек и паттернов

Python на практике: Создание качественных программ с использованием параллелизма, библиотек и паттернов

Python на практике: Создание качественных программ с использованием параллелизма, библиотек и паттернов
Автор: Саммерфилд Марк
Переводчик: Слинкин А. А.
Дата выхода: 2014
Издательство: ДМК Пресс
Количество страниц: 339
Размер файла: 1.6 MB
Тип файла: PDF
Добавил: codelibs
 Проверить на вирусы

ОГЛАВЛЕНИЕ....7

ПРЕДИСЛОВИЕ....10

ВВЕДЕНИЕ....12

Благодарности....15

ГЛАВА 1. Порождающие паттерны проектирования в Python....17

1.1. Паттерн Абстрактная фабрика....17

1.1.1. Классическая Абстрактная фабрика....18

1.1.2. Абстрактная фабрика в духе Python....21

1.2. Паттерн Построитель....23

1.3. Паттерн Фабричный метод....29

1.4. Паттерн Прототип....38

1.5. Паттерн Одиночка....39

ГЛАВА 2. Структурные паттерны проектирования в Python....41

2.1. Паттерн Адаптер....41

2.2. Паттерн Мост....47

2.3. Паттерн Компоновщик....53

2.3.1. Классическая иерархия составных и несоставных объектов....54

2.3.2. Единый класс для составных и несоставных объектов....58

2.4. Паттерн Декоратор....61

2.4.1. Декораторы функций и методов....62

2.4.2. Декораторы классов....68

2.5. Паттерн Фасад....75

2.6. Паттерн Приспособленец....80

2.7. Паттерн Заместитель....83

ГЛАВА 3. Поведенческие паттерны проектирования в Python....89

3.1. Паттерн Цепочка ответственности....89

3.1.1. Традиционная Цепочка....90

3.1.2. Цепочка на основе сопрограмм....92

3.2. Паттерн Команда....96

3.3. Паттерн Интерпретатор....100

3.3.1. Вычисление выражения с помощью eval()....101

3.3.2. Исполнение кода с помощью exec()....105

3.3.3. Исполнение кода в подпроцессе....108

3.4. Паттерн Итератор....113

3.4.1. Итераторы, следующие протоколу последовательности....113

3.4.2. Реализация итераторов с помощью функции iter() с двумя аргументами....114

3.4.3. Итераторы на базе протокола итераторов....116

3.5. Паттерн Посредник....119

3.5.1. Традиционный Посредник....120

3.5.2. Посредник на основе сопрограмм....124

3.6. Паттерн Хранитель....126

3.7. Паттерн Наблюдатель....126

3.8. Паттерн Состояние....131

3.8.1. Чувствительные к состоянию методы....134

3.8.2. Определяемые состоянием методы....136

3.9. Паттерн Стратегия....137

3.10. Паттерн Шаблонный метод....140

3.11. Паттерн Посетитель....143

3.12. Пример: пакет обработки изображений....145

3.12.1. Общий модуль обработки изображений....147

3.12.2. Обзор модуля Xpm....157

3.12.3. Модуль-обертка PNG....160

ГЛАВА 4. Высокоуровневый параллелизм в Python....163

4.1. Распараллеливание задач с большим объемом вычислений....167

4.1.1. Очереди и многопроцессная обработка....170

4.1.2. Будущие объекты и многопроцессная обработка....176

4.2. Распараллеливание задач, ограниченных скоростью ввода-вывода....179

4.2.1. Очереди и многопоточность....181

4.2.2. Будущие объекты и многопоточность....186

4.3. Пример: приложение с параллельным ГИП....189

4.3.1. Создание ГИП....191

4.3.2. Модуль ImageScaleWorker....199

4.3.3. Как ГИП обрабатывает продвижение....202

4.3.4. Как ГИП обрабатывает выход из программы....204

ГЛАВА 5. Расширение Python....206

5.1. Доступ к написанным на C библиотекам с помощью пакета ctypes....208

5.2. Использование Cython....216

5.2.1. Доступ к написанным на C библиотекам с помощью Cython....216

5.2.2. Создание Cython-модулей для повышения производительности....223

5.3. Пример: ускоренная версия пакета Image....229

ГЛАВА 6. Высокоуровневое сетевое программирование на Python....234

6.1. Создание приложений на базе технологии XML-RPC....235

6.1.1. Обертка данных....236

6.1.2. Разработка сервера XML-RPC....240

6.1.3. Разработка клиента XML-RPC....242

6.2. Создание приложений на базе технологии RPyC....252

6.2.1. Потокобезопасная обертка данных....252

6.2.2. Разработка сервера RPyC....258

6.2.3. Разработка клиента RPyC....261

ГЛАВА 7. Графические интерфейсы пользователя на Python и Tkinter....265

7.1. Введение в Tkinter....268

7.2. Создание диалоговых окон с помощью Tkinter....270

7.2.1. Создание диалогового приложения....272

7.2.2. Создание диалоговых окон в приложении....281

7.3. Создание приложений с главным окном с помощью Tkinter....291

7.3.1. Создание главного окна....293

7.3.2. Создание меню....295

7.3.3. Создание строки состояния с индикаторами....298

ГЛАВА 8. Трехмерная графика на Python с применением OpenGL....302

8.1. Сцена в перспективной проекции....304

8.1.1. Создание программы Cylinder с помощью PyOpenGL....305

8.1.2. Создание программы Cylinder с помощью pyglet....310

8.2. Игра в ортографической проекции....312

8.2.1. Рисование сцены с доской....315

8.2.2. Обработка выбора объекта на сцене....318

8.2.3. Обработка взаимодействия с пользователем....320

ПРИЛОЖЕНИЕ A. Эпилог....324

ПРИЛОЖЕНИЕ B. Краткая библиография....326

ПРЕДМЕТНЫЙ УКАЗАТЕЛЬ....330

Если вы – опытный программист на Python, то после прочтения данной книги ваши программы станут более качественными, надежными, быстрыми, удобными для сопровождения и использования.

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

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


Похожее:

Список отзывов:

Нет отзывов к книге.