LibCoder

Изучаем Python. Том 2. 5 изд.

1C Agda Python
Изучаем Python. Том 2. 5 изд.
Автор: Лутц Марк
Дата выхода: 2020
Издательство: Диалектика
Количество страниц: 722
Размер файла: 18,5 МБ
Тип файла: PDF
Добавил: LibCoder
Оглавление
Содержание....6 Предисловие....18 Часть VI. Классы и объектно-ориентированное программирование....20 ГЛАВА 26. Объектно-ориентированное программирование: общая картина....21 Для чего используются классы?....22 Объектно-ориентированное программирование с высоты птичьего полета....23 Поиск в иерархии наследования....24 Классы и экземпляры....26 Вызовы методов....26 Создание деревьев классов....27 Перегрузка операций....29 Объектно-ориентированное программирование — это многократное использование кода....30 Резюме....33 Проверьте свои знания: контрольные вопросы....33 Проверьте свои знания: ответы....34 ГЛАВА 27. Основы написания классов....35 Классы генерируют множество объектов экземпляров....35 Объекты классов обеспечивают стандартное поведение....36 Объекты экземпляров являются конкретными элементами....36 Первый пример....37 Классы настраиваются через наследование....39 Второй пример....40 Классы являются атрибутами в модулях....42 Классы могут перехватывать операции Python....43 Третий пример....44 Для чего используется перегрузка операций?....46 Простейший в мире класс Python....47 Снова о записях: классы или словари....50 Резюме....52 Проверьте свои знания: контрольные вопросы....52 Проверьте свои знания: ответы....53 ГЛАВА 28. Более реалистичный пример....55 Шаг 1: создание экземпляров....56 Написание кода конструкторов....56 Тестирование в ходе дела....57 Использование кода двумя способами....59 Шаг 2: добавление методов, реализующих поведение....60 Написание кода методов....62 Шаг 3: перегрузка операций....64 Реализация отображения....64 Шаг 4: настройка поведения за счет создания подклассов....66 Написание кода подклассов....67 Расширение методов: плохой способ....67 Расширение методов: хороший способ....68 Полиморфизм в действии....70 Наследование, настройка и расширение....71 Объектно-ориентированное программирование: основная идея....72 Шаг 5: настройка конструкторов....73 Объектно-ориентированное программирование проще, чем может казаться....74 Другие способы комбинирования классов....75 Шаг 6: использование инструментов интроспекции....78 Специальные атрибуты класса....79 Обобщенный инструмент отображения....80 Атрибуты экземпляра или атрибуты класса....82 Размышления относительно имен в классах инструментов....83 Финальная форма классов....84 Шаг 7 (последний): сохранение объектов в базе данных....85 Модули pickle, dbm и shelve....86 Сохранение объектов в базе данных shelve....87 Исследование хранилища shelve в интерактивной подсказке....88 Обновление объектов в хранилище shelve....90 Указания на будущее....92 Резюме....94 Проверьте свои знания: контрольные вопросы....94 Проверьте свои знания: ответы....95 ГЛАВА 29. Детали реализации классов....97 Оператор class....97 Общая форма....98 Пример....98 Методы....100 Пример метода....101 Вызов конструкторов суперклассов....102 Другие возможности вызова методов....102 Наследование....103 Построение дерева атрибутов....103 Специализации унаследованных методов....105 Методики связывания классов....105 Абстрактные суперклассы....107 Пространства имен: заключение....109 Простые имена: глобальные, если не выполнено их присваивание....110 Имена атрибутов: пространства имен объектов....110 “Дзен” пространств имен: присваивания классифицируют имена....111 Вложенные классы: снова о правиле областей видимости LEGB....113 Словари пространств имен: обзор....115 Связи между пространствами имен: инструмент подъема по дереву....118 Снова о строках документации....120 Классы или модули....121 Резюме....122 Проверьте свои знания: контрольные вопросы....122 Проверьте свои знания: ответы....123 ГЛАВА 30. Перегрузка операций....124 Основы....124 Конструкторы и выражения:__in it__и___sub___....125 Распространенные методы перегрузки операций....125 Индексирование и нарезание:__getitem_и_____setitem_....128 Перехват срезов....128 Нарезание и индексирование в Python 2.Х....130 Но метод__index__в Python З.Х не имеет отношения к индексированию!....131 Итерация по индексам:__getitem___....131 Итерируемые объекты:___iter__и___next____....132 Итерируемые объекты, определяемые пользователем....133 Множество итераторов в одном объекте....136 Альтернативная реализация: iter плюс yield....139 Членство: contains , iter и getitem....143 Доступ к атрибутам:_getattr__и___setattr___....146 Ссылка на атрибуты....147 Присваивание и удаление атрибутов....148 Другие инструменты управления атрибутами....149 Эмуляция защиты атрибутов экземпляра: часть 1....150 Строковое представление: г ер г и str....151 Для чего используются два метода отображения?....152 Замечания по использованию отображения....153 Использование с правой стороны и на месте:_г add_и_iadd___....154 Правостороннее сложение....155 Сложение на месте....158 Выражения вызовов:__cal 1__....159 Функциональные интерфейсы и код, основанный на обратных вызовах....161 Сравнения:___It_,___gt__и другие....163 Метод___стр__в Python 2.Х....164 Булевские проверки:_bool___и__1еп____....164 Булевские методы в Python 2.Х....165 Уничтожение объектов:__del___....167 Замечания относительно использования деструкторов....167 Резюме....168 Проверьте свои знания: контрольные вопросы....169 Проверьте свои знания: ответы....169 ГЛАВА 31. Проектирование с использованием классов....170 Python и объектно-ориентированное программирование....170 Полиморфизм означает интерфейсы, а не сигнатуры вызовов....171 Объектно-ориентированное программирование и наследование: отношения “является”....172 Объектно-ориентированное программирование и композиция: отношения “имеет”....174 Снова об обработчиках потоков данных....175 Объектно-ориентированное программирование и делегирование: промежуточные объекты-оболочки....179 Псевдозакрытые атрибуты классов....181 Обзор корректировки имен....181 Для чего используются псевдозакрытые атрибуты?....182 Методы являются объектами: связанные или несвязанные методы....184 Несвязанные методы являются функциями в Python З.Х....186 Связанные методы и другие вызываемые объекты....188 Классы являются объектами: обобщенные фабрики объектов....191 Для чего используются фабрики?....192 Множественное наследование: “подмешиваемые” классы....193 Реализация подмешиваемых классов отображения....194 Другие темы, связанные с проектированием....215 Резюме....215 Проверьте свои знания: контрольные вопросы....216 Проверьте свои знания: ответы....216 ГЛАВА 32. Расширенные возможности классов....217 Расширение встроенных типов....218 Расширение типов путем внедрения....218 Расширение типов путем создания подклассов....219 Модель классов “нового стиля”....221 Что нового в новом стиле?....222 Изменения в классах нового стиля....223 Процедура извлечения атрибутов для встроенных операций пропускает экземпляры....225 Изменения модели типов....230 Все классы являются производными от ob j ect....233 Изменение ромбовидного наследования....235 Дополнительные сведения о MRO: порядок распознавания методов....239 Пример: отображение атрибутов на источники наследования....242 Расширения в классах нового стиля....247 Слоты: объявления атрибутов....248 Свойства: средства доступа к атрибутам....257 Метод__getattribute___и дескрипторы: инструменты для работы с атрибутами....260 Другие изменения и расширения классов....261 Статические методы и методы классов....262 Для чего используются специальные методы?....262 Статические методы в Python 2.Х и З.Х....263 Альтернативы для статических методов....265 Использование статических методов и методов класса....266 Подсчет экземпляров с помощью статических методов....268 Подсчет экземпляров с помощью методов классов....269 Декораторы и метаклассы: часть 1....272 Основы декораторов функций....273 Первый взгляд на декораторы функций, определяемые пользователем....274 Первый взгляд на декораторы классов и метаклассы....276 Дополнительные сведения....278 Встроенная функция super: для лучшего или для худшего?....278 Продолжительные дебаты относительно super....278 Традиционная форма вызова методов суперкласса: переносимая, универсальная....280 Базовое использование встроенной функции super и связанные с ней компромиссы....280 Положительные стороны S 11рв Г: изменения деревьев и координирование 285 Изменения классов во время выполнения и super....287 Кооперативная координация вызовов методов при множественном наследовании....288 Сводка по super....300 Затруднения, связанные с классами....301 Изменение атрибутов классов может иметь побочные эффекты....302 Модификация изменяемых атрибутов классов тоже может иметь побочные эффекты....303 Множественное наследование: порядок имеет значение....304 Области видимости в методах и классах....305 Другие затруднения, связанные с классами....306 Еще раз о KISS: чрезмерно большое количество уровней....307 Резюме....308 Проверьте свои знания: контрольные вопросы....308 Проверьте свои знания: ответы....308 Проверьте свои знания: упражнения для части VI....310 Часть VII. Исключения и инструменты....316 ГЛАВА 33. Основы исключений....317 Для чего используются исключения?....317 Роли, исполняемые исключениями....318 Исключения: краткая история....319 Стандартный обработчик исключений....319 Перехват исключений....321 Генерация исключений....322 Исключения, определяемые пользователем....322 Действия при завершении....323 Резюме....326 Проверьте свои знания: контрольные вопросы....327 Проверьте свои знания: ответы....327 ГЛАВА 34. Детали обработки исключений....328 Оператор try/except/else....328 Как работают операторы try....329 Конструкции оператора try....330 Конструкция else оператора try....333 Пример: стандартное поведение....334 Пример: перехват встроенных исключений....335 Оператор try/finally....336 Пример: написание кода действий при завершении с помощью try/finally....337 Унифицированный оператор try/except/finally....338 Унифицированный синтаксис оператора try....339 Комбинирование finally и except за счет вложения....340 Пример унифицированного оператора try....340 Оператор raise....342 Генерация исключений....343 Области видимости и переменные except в try....344 Распространение исключений с помощью raise....345 Сцепление исключений в Python З.Х: raise from....346 Оператор assert....348 Пример: улавливание нарушений ограничений (но не ошибок!)....349 Диспетчеры контекстов with/as....350 Базовое использование....351 Протокол управления контекстами....352 Множество диспетчеров контекстов в Python 3.1, 2.7 и последующих версиях....354 Резюме....356 Проверьте свои знания: контрольные вопросы....356 Проверьте свои знания: ответы....356 ГЛАВА 35. Объекты исключений....358 Исключения: назад в будущее....359 Строковые исключения канули в лету!....359 Исключения на основе классов....360 Реализация классов исключений....361 Для чего используются иерархии исключений?....363 Встроенные классы исключений....366 Категории встроенных исключений....367 Стандартный вывод и состояние....368 Специальное отображение при выводе....370 Специальные данные и поведение....372 Предоставление деталей исключения....372 Предоставление методов исключений....373 Резюме....374 Проверьте свои знания: контрольные вопросы....374 Проверьте свои знания: ответы....375 ГЛАВА 36. Проектирование с использованием исключений....376 Вложение обработчиков исключений....376 Пример: вложение в потоке управления....378 Пример: синтаксическое вложение....378 Идиомы исключений....380 Прерывание множества вложенных циклов: “безусловный переход”....380 Исключения не всегда являются ошибками....381 Функции могут сигнализировать об условиях с помощью raise....382 Закрытие файлов и серверных подключений....383 Отладка с помощью внешних операторов try....384 Выполнение внутрипроцессных тестов....384 Дополнительные сведения о функции sys . exc inf о....385 Отображение сообщений об ошибках и трассировок....386 Советы по проектированию с использованием исключений и связанные с ними затруднения....387 Что должно быть помещено внутрь операторов try?....387 Перехват слишком многого: избегайте использования пустой конструкции except и конструкции except Exception....388 Перехват чересчур малого: используйте категории на основе классов....390 Сводка по базовому языку....391 Комплект инструментов Python....391 Инструменты для разработки, ориентированные на более крупные проекты....392 Резюме....396 Проверьте свои знания: контрольные вопросы....397 Проверьте свои знания: ответы....397 Проверьте свои знания: упражнения для части VII....397 Часть VIII. Более сложные темы....400 ГЛАВА 37. Unicode и байтовые строки....401 Изменения строк в Python З.Х....402 Основы строк....403 Схемы кодирования символов....403 Хранение строк Python в памяти....406 Типы строк Python....407 Текстовые и двоичные файлы....409 Написание базовых строк....410 Строковые литералы Python З.Х....411 Строковые литералы Python 2.Х....413 Преобразования строковых типов....413 Написание строк Unicode....415 Написание текста ASCII....415 Написание текста, отличающегося от ASCII....416 Кодирование и декодирование текста, отличающегося от ASCII....417 Другие схемы кодирования....418 Байтовые строковые литералы: закодированный текст....419 Преобразования между кодировками....421 Кодирование строк Unicode в Python 2.Х....421 Объявления кодировок в файлах исходного кода....425 Использование объектов bytes в Python З.Х....426 Вызовы методов....426 Операции над последовательностями....427 Другие способы создания объектов bytes....428 Смешивание строковых типов....429 Использование объектов bytearray в Python З.Х/2.6+....429 Объекты bytearray в действии....430 Сводка по строковым типам Python З.Х....432 Использование текстовых и двоичных файлов....432 Основы текстовых файлов....433 Текстовый и двоичный режимы в Python 2.Х и З.Х....434 Несоответствия типов и содержимого в Python З.Х....435 Использование файлов Unicode....436 Чтение и запись данных Unicode в Python З.Х....437 Обработка маркера ВОМ в Python З.Х....438 Файлы Unicode в Python 2.Х....441 Имена файлов и потоки данных Unicode....442 Другие изменения инструментов для обработки строк в Python З.Х....443 Модуль ге для сопоставления с образцом....443 Модуль struct для работы с двоичными данными....445 Модуль pickle для сериализации объектов....447 Инструменты для разбора XML....448 Резюме....452 Проверьте свои знания: контрольные вопросы....453 Проверьте свои знания: ответы....453 ГЛАВА 38. Управляемые атрибуты....456 Для чего используются управляемые атрибуты?....456 Вставка кода для запуска при доступе к атрибутам....457 Свойства....458 Основы....459 Первый пример....459 Вычисляемые атрибуты....460 Реализация свойств с помощью декораторов....461 Дескрипторы....463 Основы....463 Первый пример....466 Вычисляемые атрибуты....468 Использование информации состояния в дескрипторах....469 Связь между свойствами и дескрипторами....472 __getattr__и___getattribute___....474 Основы....475 Первый пример....478 Вычисляемые атрибуты....479 Сравнение___getattr__и____getattribute__....481 Сравнение методик управления....482 Перехват атрибутов для встроенных операций....485 Пример: проверка достоверности атрибутов....492 Использование свойств для проверки достоверности....493 Использование дескрипторов для проверки достоверности....495 Использование___getattr___для проверки достоверности....499 Использование___getattribute__для проверки достоверности....501 Резюме....502 Проверьте свои знания: контрольные вопросы....503 Проверьте свои знания: ответы....503 ГЛАВА 39. Декораторы....505 Что такое декоратор?....505 Управление вызовами и экземплярами....506 Управление функциями и классами....506 Использование и определение декораторов....507 Для чего используются декораторы?....507 Основы....509 Декораторы функций....509 Декораторы классов....513 Вложение декораторов....515 Аргументы декораторов....517 Декораторы одновременно управляют функциями и классами....518 Реализация декораторов функций....519 Отслеживание вызовов....519 Варианты предохранения состояния для декораторов....520 Грубые ошибки, связанные с классами, часть I: декорирование методов....525 Измерение времени вызовов....531 Добавление аргументов к декоратору....534 Реализация декораторов классов....537 Классы-одиночки....537 Отслеживание объектных интерфейсов....539 Грубые ошибки, связанные с классами, часть II: предохранение множества экземпляров....543 Декораторы или управляющие функции....544 Для чего используются декораторы? (Еще раз)....546 Управление функциями и классами напрямую....548 Пример: “закрытые” и “открытые” атрибуты....550 Реализация закрытых атрибутов....550 Детали реализации, часть I....552 Обобщение также для открытых объявлений....554 Детали реализации, часть II....556 Нерешенные проблемы....557 Python не поощряет контроль доступа....565 Пример: проверка допустимости аргументов функций....566 Цель....566 Базовый декоратор проверки вхождения значений в диапазон для позиционных аргументов....567 Обобщение для поддержки также ключевых аргументов и стандартных значений....569 Детали реализации....572 Нерешенные проблемы....575 Аргументы декоратора или аннотации функций....577 Другие приложения: проверка типов (если вы настаиваете!)....579 Резюме....580 Проверьте свои знания: контрольные вопросы....580 Проверьте свои знания: ответы....581 ГЛАВА 40. Метаклассы....591 Нужно ли иметь дело с метаклассами?....592 Повышение уровней “магии”....593 Язык привязок....594 Недостаток “вспомогательных” функций....595 Метаклассы против декораторов классов: раунд 1....597 Модель метаклассов....600 Классы являются экземплярами type....600 Метаклассы являются подклассами type....602 Протокол оператора class....603 Объявление метаклассов....604 Объявление в Python З.Х....604 Объявление в Python 2.Х....605 Координирование метаклассов в Python З.Х и 2.Х....606 Реализация метаклассов....606 Базовый метакласс....607 Настройка создания и инициализации....608 Другие методики реализации метаклассов....609 Наследование и экземпляр....614 Метакласс или суперкласс....616 Наследование: вся история....618 Методы метаклассов....624 Методы метаклассов или методы классов....625 Перегрузка операций в методах метакласса....625 Пример: добавление методов в классы....627 Ручное дополнение....627 Дополнение на основе метаклассов....629 Метаклассы против декораторов классов: раунд 2....630 Пример: применение декораторов к методам....635 Трассировка с помощью декорирования вручную....636 Трассировка с помощью метаклассов и декораторов....637 Применение любого декоратора к методам....638 Метаклассы против декораторов классов: раунд 3 (и последний)....640 Резюме....642 Проверьте свои знания: контрольные вопросы....643 Проверьте свои знания: ответы....643 ГЛАВА 41. Все хорошее когда-нибудь заканчивается....645 Парадокс Python....645 О “необязательных” языковых средствах....646 Против тревожных усовершенствований....647 Сложность или мощь....648 Простота или элитарность....649 Заключительные размышления....649 Куда двигаться дальше?....650 На бис: распечатайте собственный сертификат об окончании!....650 Часть IX. Приложения....654 Приложение А. Установка и конфигурирование....655 Установка интерпретатора Python....655 Присутствует ли Python на компьютере?....655 Где взять интерпретатор Python....656 Шаги установки....657 Конфигурирование интерпретатора Python....659 Переменные среды Python....659 Способы установки конфигурационных параметров....661 Аргументы командной строки интерпретатора Python....664 Командные строки запускающего модуля, появившегося в Python 3.3....667 Дополнительная помощь....668 Приложение Б. Запускающий модуль Windows для Python....669 Наследие Unix....669 Наследие Windows....670 Введение в запускающий модуль Windows....671 Учебное руководство по запускающему модулю Windows....673 Шаг 1: использование директив версий в файлах....673 Шаг 2: использование переключателей версий командной строки....676 Выводы: чистый выигрыш для Windows....677 Приложение В. Изменения в Python и настоящая книга....678 Главные отличия между Python 2.Х и Python З.Х....678 Отличия Python З.Х....679 Расширения, доступные только в Python З.Х....680 Общие замечания: изменения в Python З.Х....681 Изменения в библиотеках и инструментах....682 Переход на Python З.Х....683 Изменения в Python, относящиеся к пятому изданию: Python 2.7, 3.2, 3.3....683 Изменения в Python 2.7....684 Изменения в Python 3.8....684 Изменения в Python 3.7....684 Изменения в Python 3.3....686 Изменения в Python 3.2....687 Изменения в Python, относящиеся к четвертому изданию: Python 2.6, 3.0, 3.1....687 Изменения в Python 3.1....687 Изменения в Python 3.0 и 2.6....688 Удаления в языке Python 3.0....689 Изменения в Python, относящиеся к третьему изданию: Python 2.3, 2.4, 2.5....692 Более ранние и более поздние изменения в Python....692 Приложение Г. Решения упражнений, приводимых в конце частей....693 Часть VI, “Классы и объектно-ориентированное программирование”....693 Часть VII, “Исключения и инструменты”....701 Предметный указатель....710

Описание

В этом материале разберём тему: python.

2-й том обновленного 5-го издания известной книги Марка Лутца поможет вам оперативно научиться писать эффективный высококачественный код на Python. По причине большого объема книга разделена на два тома. Это руководство - идеальный способ начать изучение Python, будь вы новичок в программировании или профессиональный разработчик программного обеспечения на других языках.

Простое и понятное учебное пособие, укомплектованное контрольными вопросами, упражнениями и полезными иллюстрациями, позволит вам освоить основы линеек Python 3.X и 2.X. Вы также ознакомитесь с расширенными возможностями языка, получившими широкое распространение в коде Python.

Хорошая новость в том, что ООП в Python гораздо проще для понимания и использования, чем в других языках, таких как C++ или Java. Будучи динамически типизированным языком написания сценариев, Python устраняет большую часть синтаксического беспорядка и сложности, которые затуманивают ООП в других инструментах.

Благодаря книге вы:Исследуете основные встроенные типы объектов Python, такие как числа, списки и словариНаучитесь создавать и обрабатывать объекты с помощью операторов Python и освоите общую синтаксическую модель PythonСможете применять функции для устранения избыточности кода и упаковки кода с целью многократного использованияУзнаете, как организовывать операторы, функции и прочие инструменты в более крупные компоненты посредством модулейПогрузитесь глубже в классы — инструмент объектно-ориентированного программирования Python для структурирования кодаНаучитесь писать крупные программы с применением модели обработки исключений и инструментов разработки PythonОсвоите более сложные инструменты Python, включая декораторы, дескрипторы, метаклассы и обработку Unicode

Если материал оказался полезен — сохраните страницу.

python других писать языках функции кода инструменты более

Частые вопросы

Можно ли скачать «Изучаем Python. Том 2. 5 изд.» бесплатно?

Да, «Изучаем Python. Том 2. 5 изд.» доступна для бесплатного скачивания на нашем сайте в формате PDF. Ссылка на файл находится на этой странице.

В каком формате и какого размера файл?

Книга предоставляется в формате PDF, размер файла 18,5 МБ.

Кто автор и когда вышла книга?

автор — Лутц Марк, издательство Диалектика, год выпуска 2020, 722 страниц.

О чём книга «Изучаем Python. Том 2. 5 изд.»?

По причине большого объема книга разделена на два тома.

Похожие материалы