Простой Python. современный стиль программирования - читать онлайн бесплатно полную версию книги . Страница 5

Указываем значение параметра по умолчанию . . . . . . . . . . . . . . . . 122

Получаем позиционные аргументы с помощью * . . . . . . . . . . . . . . . 124

Получение аргументов — ключевых слов с помощью ** . . . . . . . . . 125

Строки документации . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125

Функции — это объекты первого класса . . . . . . . . . . . . . . . . . . . . . . 126

Внутренние функции . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128

Замыкания . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129

Анонимные функции: функция lambda() . . . . . . . . . . . . . . . . . . . . . 130

Генераторы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131

Декораторы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132

Пространства имен и область определения . . . . . . . . . . . . . . . . . . . . . . 134

Обработка ошибок с помощью try и except . . . . . . . . . . . . . . . . . . . . . . . 137

Создание собственных исключений . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139

Упражнения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140

Глава 5. Py Boxes: модули, пакеты и программы . . . . . . . . . . . . . . 142

Отдельные программы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142

Аргументы командной строки . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143

Модули и оператор import . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143

Импортируем модуль . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143

Импортируем модуль с другим именем . . . . . . . . . . . . . . . . . . . . . . . 145

Импортируем только самое необходимое . . . . . . . . . . . . . . . . . . . . . 145

Каталоги поиска модулей . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146

Пакеты . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146

12

Оглавление

Стандартная библиотека Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147

Обработка отсутствующих ключей с помощью функций setdefault()

и defaultdict() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148

Подсчитываем элементы с помощью функции Counter() . . . . . . . . . . 150

Упорядочиваем по ключу с помощью OrderedDict() . . . . . . . . . . . . . 151

Стек + очередь == deque . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152

Итерируем по структурам кода с помощью itertools . . . . . . . . . . . . . 153

Выводим данные на экран красиво с помощью функции pprint() . . . . 155

Нужно больше кода . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155

Упражнения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156

Глава 6. Ой-ой-ой: объекты и классы . . . . . . . . . . . . . . . . . . . . . . . . 157

Что такое объекты . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157

Определяем класс с помощью ключевого слова class . . . . . . . . . . . . . . . 158

Наследование . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160

Перегрузка метода . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161

Добавление метода . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162

Просим помощи у предка с помощью ключевого слова super . . . . . . . . . 163

В защиту self . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164

Получаем и устанавливаем значение атрибутов с помощью

свойств . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165

Искажение имен для безопасности . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168

Типы методов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169

Утиная типизация . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170

Особые методы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172

Композиция . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175