Ваш город
Москва
Ваш город Москва?
+7 928 117-10-37
Отдел продаж
Режим работы:
Пн-Сб 10:00—18:00;
Вс выходной
КАТАЛОГ ТОВАРОВ
0КорзинаПусто0 руб.
Товары в корзине
корзина пуста
КАТАЛОГ ТОВАРОВ
Корзина пуста0 руб.0
Товары в корзине
корзина пуста
Корзина пуста0 руб.0
Товары в корзине
корзина пуста

Чистый Python. Тонкости программирования для профи

Чистый Python. Тонкости программирования для профи
Изучение всех возможностей Python — сложная задача, а с этой книгой вы сможете сосредоточиться на практических навыках, которые действительно важны. Раскопайте «скрытое золото» в стандартной библиотеке Python и начните писать чистый код уже сегодня...
Характеристики
Автор(ы):
Дэн Бейдер
Издательство:
Питер
Год издания:
2021
Кол-во страниц:
288
Переплёт:
Мягкий
Смотреть все
Категории
Получение информации о методах доставки
Код: 17868
Нет в наличии
980
Количество:
Избранное
Сравнение
Описание

Изучение всех возможностей Python — сложная задача, а с этой книгой вы сможете сосредоточиться на практических навыках, которые действительно важны. Раскопайте «скрытое золото» в стандартной библиотеке Python и начните писать чистый код уже сегодня.

  • Если у вас есть опыт работы со старыми версиями Python, вы сможете ускорить работу с современными шаблонами и функциями, представленными на Python 3;
  • Если вы работали с другими языками программирования, и хотите перейти на Python, то найдете практические советы, необходимые для того, чтобы стать эффективным питонщиком;
  • Если вы хотите научиться писать чистый код, то найдете здесь самые интересные примеры и малоизвестные трюки.

"Чтобы освоить Python, нужно не только понимать теоретические аспекты языка. Для достижения этой цели придется понять и принять общие правила и самые лучшие практические приемы, используемые сообществом. Книга Дэна поможет вам в этом путешествии. Я убеждена, что, прочитав ее, вы почувствуете себя увереннее."
Мариатта Виджайя, разработчик ядра Python (mariatta.ca)

Характеристики
Автор(ы)
Дэн Бейдер
Переводчик
А. Логунов
Издательство
Питер
Серия
Библиотека программиста
Год издания
2021
ISBN
978-5-4461-0803-9
Возрастное ограничение
16+
Кол-во страниц
288
Формат страниц
70x100/16 (170x240 мм)
Размеры товара
235 × 166 × 16 мм
Язык
Русский
Переплёт
Мягкий
Доп. сведения
Офсетная бумага
Иллюстрации
черно-белые
Тираж
доп. тираж
Вес
385 г
Отзывы

Loading...
Оглавление

Предисловие . 16

Комментарии переводчика 18
Базовый набор библиотек для разработчика . 18
От издательства 19
Глава 1. Введение 20
1.1. Что такое идиома Python 20
1.2. Чем эта книга будет полезна 22
1.3. Как читать эту книгу . 23
1.4. Тонкости Python: цифровой комплект инструментов в качестве бонуса . 24
Глава 2. Шаблоны для чистого Python . 25
2.1. Прикрой свой з** инструкциями assert 25
Инструкция assert в Python — пример 26
Почему просто не применить обычное исключение? 27
Синтаксис инструкции Python assert 28
Распространенные ловушки, связанные с использованием инструкции
assert в Python . 30
Предостережение № 1: не используйте инструкции assert для проверки данных 30
Предостережение № 2: инструкции assert, которые никогда не дают сбоя 32
Инструкции assert — резюме . 34
Ключевые выводы 34
2.2. Беспечное размещение запятой 34
Ключевые выводы 38
2.3. Менеджеры контекста и инструкция with 38
Поддержка инструкции with в собственных объектах . 40
Написание красивых API с менеджерами контекста . 42
Ключевые выводы 44
2.4. Подчеркивания, дандеры и другое 44
1. Одинарный начальный символ подчеркивания: _var 45
2. Одинарный замыкающий символ подчеркивания: var_ . 47
3. Двойной начальный символ подчеркивания: __var 48
Экскурс: что такое дандеры? . 52
4. Двойной начальный и замыкающий символ подчеркивания: __var__ . 53
5. Одинарный символ подчеркивания: _ 54
Ключевые выводы 55
2.5. Шокирующая правда о форматировании строковых значений . 56
№ 1. «Классическое» форматирование строковых значений 57
№ 2. «Современное» форматирование строковых значений 58
№ 3. Интерполяция литеральных строк (Python 3.6+) . 60
№ 4. Шаблонные строки . 62
Какой метод форматирования строк мне использовать? 63
Ключевые выводы 64
2.6. Пасхалка «Дзен Python» . 64
Дзен Python от Тима Питерса 65
Глава 3. Эффективные функции . 66
3.1. Функции Python — это объекты первого класса . 66
Функции — это объекты 67
Функции могут храниться в структурах данных 68
Функции могут передаваться другим функциям . 69
Функции могут быть вложенными 70
Функции могут захватывать локальное состояние 72
Объекты могут вести себя как функции . 74
Ключевые выводы 75
3.2. Лямбды — это функции одного выражения . 75
Лямбды в вашем распоряжении 77
А может, не надо… 78
Ключевые выводы 80
3.3. Сила декораторов . 80
Основы декораторов Python 82
Декораторы могут менять поведение 84
Короткая пауза . 86
Применение многочисленных декораторов к функции . 86
Декорирование функций, принимающих аргументы . 88
Ключевые выводы 91
3.4. Веселье с *args и **kwargs . 92
Переадресация необязательных или именованных аргументов 93
Ключевые выводы 95
3.5. Распаковка аргументов функции . 96
Ключевые выводы 98
3.6. Здесь нечего возвращать 98
Ключевые выводы 101
Глава 4. Классы и ООП 102
4.1. Сравнения объектов: is против == 102
4.2. Преобразование строк (каждому классу по __repr__) 104
Метод __str__ против __repr__ 107
Почему каждый класс нуждается в __repr__ 110
Отличия Python 2.x: __unicode__ . 112
Ключевые выводы 113
4.3. Определение своих собственных классов-исключений 114
Ключевые выводы 117
4.4. Клонирование объектов для дела и веселья 118
Создание мелких копий . 119
Создание глубоких копий 121
Копирование произвольных объектов . 122
Ключевые выводы 125
4.5. Абстрактные базовые классы держат наследование
под контролем . 125
Ключевые выводы 128
4.6. Чем полезны именованные кортежи . 129
Именованные кортежи спешат на помощь . 130
Создание производных от Namedtuple подклассов . 133
Встроенные вспомогательные методы . 134
Когда использовать именованные кортежи 135
Ключевые выводы 135
4.7. Переменные класса против переменных экземпляра:
подводные камни . 136
Пример без собак . 139
Ключевые выводы 141
4.8. Срыв покровов с методов экземпляра, методов класса
и статических методов . 142
Методы экземпляра 143
Методы класса 143
Статические методы . 144
Посмотрим на них в действии! 144
Фабрики аппетитной пиццы с @classmethod 147
Когда использовать статические методы . 149
Ключевые выводы 151
Глава 5. Общие структуры данных Python . 153
5.1. Словари, ассоциативные массивы и хеш-таблицы . 155
dict — ваш дежурный словарь . 156
collections.OrderedDict — помнят порядок вставки ключей . 157
collections.defaultdict — возвращает значения, заданные по умолчанию
для отсутствующих ключей 158
collections.ChainMap — производит поиск в многочисленных словарях
как в одной таблице соответствия . 159
types.MappingProxyType — обертка для создания словарей только
для чтения 159
Словари в Python: заключение 160
Ключевые выводы 161
5.2. Массивоподобные структуры данных 161
list — изменяемые динамические массивы . 162
tuple — неизменяемые контейнеры . 163
array.array — элементарные типизированные массивы . 164
str — неизменяемые массивы символов Юникода 165
bytes — неизменяемые массивы одиночных байтов . 167
bytearray — изменяемые массивы одиночных байтов . 168
Ключевые выводы 169
5.3. Записи, структуры и объекты переноса данных . 170
dict — простые объекты данных 171
tuple — неизменяемые группы объектов 172
Написание собственного класса — больше работы, больше контроля 174
collections.namedtuple — удобные объекты данных 175
typing.NamedTuple — усовершенствованные именованные кортежи . 177
struct.Struct — сериализованные С-структуры 178
types.SimpleNamespace — причудливый атрибутивный доступ . 179
Ключевые выводы 180
5.4. Множества и мультимножества . 181
set — ваше дежурное множество 182
frozenset — неизменяемые множества . 183
collections.Counter — мультимножества . 183
Ключевые выводы 184
5.5. Стеки (с дисциплиной доступа LIFO) . 185
list — простые встроенные стеки . 186
collections.deque — быстрые и надежные стеки 187
deque.LifoQueue — семантика блокирования для параллельных
вычислений . 188
Сравнение реализаций стека в Python . 189
Ключевые выводы 190
5.6. Очереди (с дисциплиной доступа FIFO) 190
list — ужасно меееедленная очередь . 192
collections.deque — быстрые и надежные очереди . 193
queue.Queue — семантика блокирования для параллельных
вычислений . 194
multiprocessing.Queue — очереди совместных заданий . . . . . . . . . . . . . . . 195
Ключевые выводы 196
5.7. Очереди с приоритетом 196
list — поддержание сортируемой очереди вручную . 197
heapq — двоичные кучи на основе списка . 198
queue.PriorityQueue — красивые очереди с приоритетом 199
Ключевые выводы 200
Глава 6. Циклы и итерации 201
6.1. Написание питоновских циклов 201
Ключевые выводы 204
6.2. Осмысление включений 205
Ключевые выводы 208
6.3. Нарезки списков и суши-оператор 209
Ключевые выводы 211
6.4. Красивые итераторы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212
Бесконечное повторение . 213
Как циклы for-in работают в Python? . 215
Более простой класс-итератор 218
Кто же захочет без конца выполнять итерации . 219
Совместимость с Python 2.x . 223
Ключевые выводы 224
6.5. Генераторы — это упрощенные итераторы 224
Бесконечные генераторы 225
Генераторы, которые прекращают генерацию . 227
Ключевые выводы 231
6.6. Выражения-генераторы 231
Выражения-генераторы против включений в список 233
Фильтрация значений . 235
Встраиваемые выражения-генераторы 236
Слишком много хорошего… . 236
Ключевые выводы 238
6.7. Цепочки итераторов . 238
Ключевые выводы 241
Глава 7. Трюки со словарем . 242
7.1. Значения словаря, принимаемые по умолчанию 242
Ключевые выводы 245
7.2. Сортировка словарей для дела и веселья 245
Ключевые выводы 248
7.3. Имитация инструкций выбора на основе словарей 248
Ключевые выводы 253
7.4. Самое сумасшедшее выражение-словарь на западе . 253
Ключевые выводы 260
7.5. Так много способов объединить словари . 260
Ключевые выводы 263
7.6. Структурная печать словаря . 263
Ключевые выводы 265
Глава 8. Питоновские методы
повышения производительности 266
8.1. Исследование модулей и объектов Python . 266
Ключевые выводы 269
8.2. Изоляция зависимостей проекта при помощи Virtualenv 270
Виртуальные среды спешат на помощь 271
Ключевые выводы 274
8.3. По ту сторону байткода 275
Ключевые выводы 279
Глава 9. Итоги . 280
9.1. Бесплатные еженедельные советы для разработчиков на Python 281
9.2. PythonistaCafe: сообщество разработчиков на Python 282

Помощь
+7 928 117-10-37
Отдел продаж
Если у вас возникли вопросы при оформлении заказа, обратитесь по указанным контактам.
Мы используем файлы cookie, чтобы сайт был лучше для вас.