Марк Лутц - Изучаем Python, Четвертое издание (1184811), страница 3
Текст из файла (страница 3)
647Импортирование относительно пакета.................................... 650В заключение...................................................................... 663Закрепление пройденного..................................................... 664Глава 24. Дополнительные возможности модулей.................. 665Сокрытие данных в модулях................................................. 665Включение будущих возможностей языка...............................
66612ОглавлениеСмешанные режимы использования:__name__ и __main__........................................................... 667Изменение пути поиска модулей............................................ 672Расширение as для инструкций import и from.......................... 673Модули – это объекты: метапрограммы...................................
674Импортирование модулей по имени в виде строки.................... 677Транзитивная перезагрузка модулей ...................................... 678Концепции проектирования модулей...................................... 681Типичные проблемы при работе с модулями............................
682В заключение...................................................................... 688Закрепление пройденного..................................................... 688Часть VI. Классы и ООП............................................................ 693Глава 25. ООП: общая картина................................................
695Зачем нужны классы?.......................................................... 696ООП с высоты 30 000 футов................................................... 697В заключение...................................................................... 706Закрепление пройденного..................................................... 707Глава 26. Основы программирования классов......................... 709Классы генерируют множество экземпляров объектов.............. 709Классы адаптируются посредством наследования..................... 713Классы могут переопределять операторы языка Python............. 717Самый простой в мире класс на языке Python..........................
721Классы и словари ................................................................ 723В заключение...................................................................... 725Закрепление пройденного..................................................... 726Глава 27. Более реалистичный пример.................................... 728Шаг 1: создание экземпляров ................................................ 729Шаг 2: добавление методов, определяющих поведение.............. 733Шаг 3: перегрузка операторов................................................ 737Шаг 4: адаптация поведения с помощью подклассов................. 739Шаг 5: адаптация конструкторов...........................................
745Шаг 6: использование инструментов интроспекции.................. 750Шаг 7 (последний): сохранение объектов в базе данных............. 757Рекомендации на будущее..................................................... 763В заключение...................................................................... 765Закрепление пройденного..................................................... 766Глава 28. Подробнее о программировании классов.................
769Инструкция class................................................................. 769Методы.............................................................................. 772Наследование...................................................................... 775Оглавление13Пространства имен: окончание истории ................................. 781Еще раз о строках документирования..................................... 790Классы и модули. ................................................................ 791В заключение...................................................................... 792Закрепление пройденного.....................................................
792Глава 29. Перегрузка операторов............................................ 794Доступ к элементам по индексу и извлечение срезов:__getitem__ и __setitem__.................................................... 797Итерации по индексам: __getitem__....................................... 800Итераторы: __iter__ и __next__............................................. 802Проверка на вхождение:__contains__, __iter__ и __getitem__...................................... 807Обращения к атрибутам: __getattr__ и __setattr__...................
809Строковое представление объектов: __repr__ и __str__............. 812Правостороннее сложение и операция приращения:__radd__ и __iadd__............................................................ 814Операция вызова: __call__.................................................... 816Функциональные интерфейсыи программный код обратного вызова..................................... 818Сравнивание: __lt__, __gt__ и другие.....................................
820Проверка логического значения: __bool__ и __len__................. 821В заключение...................................................................... 825Закрепление пройденного..................................................... 826Глава 30. Шаблоны проектирования с классами...................... 828Python и ООП...................................................................... 828ООП и наследование:взаимосвязи типа «является»................................................ 830ООП и композиция: взаимосвязи типа «имеет»........................ 832ООП и делегирование: объекты-обертки..................................
837Псевдочастные атрибуты класса............................................ 839Методы – это объекты:связанные и несвязанные методы........................................... 842Множественное наследование: примесные классы.................... 849Классы – это объекты:универсальные фабрики объектов.......................................... 861Прочие темы, связанные с проектированием. .......................... 863В заключение......................................................................
863Закрепление пройденного..................................................... 864Глава 31. Дополнительные возможности классов..................... 865Расширение встроенных типов.............................................. 866Классы «нового стиля».........................................................
869Изменения в классах нового стиля......................................... 87014ОглавлениеДругие расширения в классах нового стиля............................. 880Статические методы и методы класса......................................
887Декораторы и метаклассы: часть 1......................................... 896Типичные проблемы при работе с классами............................. 901В заключение...................................................................... 907Закрепление пройденного..................................................... 908Часть VII. Исключения и инструменты.................................... 917Глава 32. Основы исключений................................................
919Зачем нужны исключения?................................................... 920Обработка исключений: краткий обзор................................... 921В заключение...................................................................... 927Закрепление пройденного..................................................... 928Глава 33. Особенности использования исключений.................
929Инструкция try/except/else.................................................. 929Инструкция try/finally......................................................... 936Объединенная инструкция try/except/finally.......................... 939Инструкция raise................................................................. 943Инструкция assert...............................................................
946Контекстные менеджеры with/as........................................... 948В заключение...................................................................... 952Закрепление пройденного.....................................................
952Глава 34. Объекты исключений............................................... 954Исключения: назад в будущее............................................... 955Исключения на основе классов.............................................. 956В чем преимущества иерархий исключений? .......................... 959Классы встроенных исключений............................................
962Определение текста исключения............................................ 965Передача данных в экземплярах и реализация поведения ......... 966В заключение...................................................................... 968Закрепление пройденного.....................................................
969Глава 35. Использование исключений..................................... 971Вложенные обработчики исключений..................................... 971Идиомы исключений............................................................ 975Советы по применениюи типичные проблемы исключений........................................ 980Заключение по основам языка............................................... 984В заключение...................................................................... 990Закрепление пройденного.....................................................
99115ОглавлениеЧасть VIII. Расширенные возможности................................... 993Глава 36. Юникод и строки байтов.......................................... 995Изменения в Python 3.0, касающиеся строк............................. 996Основы строк...................................................................... 997Примеры использования строк в Python 3.0.......................... 1003Кодирование строк Юникода...............................................
1006Использование объектов bytes в Python 3.0............................ 1015Использование объектов bytearray в 3.0 (и 2.6) ...................... 1018Использование текстовых и двоичных файлов....................... 1021Использование файлов Юникода.......................................... 1026Другие инструменты для работы со строками в Python 3.0.......