Справка
x
Поиск
Закладки
Озвучить книгу
Изменить режим чтения
Изменить размер шрифта
Оглавление
Для озвучивания и цитирования книги перейдите в режим постраничного просмотра.
Python. К вершинам мастерства
ЧАСТЬ V. Поток управления
Предыдущая страница
Следующая страница
Table of contents
Предисловие
+
ЧАСТЬ I. Пролог
+
ЧАСТЬ II. Структуры данных
+
ЧАСТЬ III. Функции как объекты
+
ЧАСТЬ IV. Объектно-ориентированные идиомы
+
ЧАСТЬ V. Поток управления
-
Глава 14. Итерируемые объекты, итераторы и генераторы
Класс Sentence, попытка № 1: последовательность слов
Почему последовательности итерируемы: функция iter
Итерируемые объекты и итераторы
Класс Sentence, попытка № 2: классический вариант
Почему идея сделать Sentence итератором плоха
Класс Sentence, попытка № 3: генераторная функция
Как работает генераторная функция
Класс Sentence, попытка № 4: ленивая реализация
Класс Sentence, попытка № 5: генераторное выражение
Генераторные выражения: когда использовать
Другой пример: генератор арифметической прогрессии
Построение арифметической прогрессии с помощью itertools
Генераторные функции в стандартной библиотеке
yield from - новая конструкция в Python 3.3
Функции редуцирования итерируемого объекта
Более пристальный взгляд на функцию iter
Пример: генераторы в утилите преобразования базы данных
Генераторы как сопрограммы
Резюме
Дополнительная литература
Поговорим
Глава 15. Контекстные менеджеры и блоки else
Делай то, потом это: блоки else вне if
Контекстные менеджеры и блоки with
Утилиты contextlib
Использование @contextmanager
Резюме
Дополнительная литература
Поговорим
Глава 16. Сопрограммы
Эволюция: от генераторов к сопрограммам
Базовое поведение генератора, используемого в качестве сопрограммы
Пример: сопрограмма для вычисления накопительного среднего
Декораторы для инициализации сопрограмм
Завершение сопрограммы и обработка исключений
Возврат значения из сопрограммы
Использование yield from
Семантика yield from
Пример: применение сопрограмм для моделирования дискретных событий
О моделировании дискретных событий
Моделирование работы таксопарка
Резюме
Дополнительная литература
Поговорим
Глава 17. Параллелизм и будущие объекты
Пример: три способа загрузки из веба
Скрипт последовательной загрузки
Загрузка с применением библиотеки concurrent.futures
Где находятся будущие объекты?
Блокирующий ввод-вывод и GIL
Запуск процессов с помощью concurrent.futures
Эксперименты с Executor.map
Загрузка с индикацией хода выполнения и обработкой ошибок
Обработка ошибок во flags2-примерах
Использование futures.as_completed
Альтернативы: многопоточная и многопроцессная обработка
Резюме
Дополнительная литература
Поговорим
Глава 18. Применение пакета asyncio для организации конкурентной работы
Сравнение потока и сопрограммы
asyncio.Future: не блокирует умышленно
Yield from из будущих объектов, задач и сопрограмм
Загрузка с применением asyncio и aiohttp
Объезд блокирующих вызовов
Улучшение скрипта загрузки на основе asyncio
Использование asyncio.as_completed
Использование исполнителя для предотвращения блокировки цикла обработки событий
От обратных вызовов к будущим объектам и сопрограммам
Выполнение нескольких запросов для каждой операции загрузки
Разработка серверов с помощью пакета asyncio
TCP-сервер на основе asyncio
Веб-сервер на основе библиотеки aiohttp
Повышение степени параллелизма за счет более интеллектуальных клиентов
Резюме
Дополнительная литература
Поговорим
ЧАСТЬ VI. Метапрограммирование
+
Послесловие
+
Приложение А. Основы языка Python
+
Терминология Python
Предметный указатель
Данный блок поддерживает скрол*