Генераторы словарей и модули Рython
Функции в языке Python Функции в языке PythonВсе функции в языке Python возвращают какое-либо значение, хотя вполне возможно (и часто так и делается) просто игнорировать это значение. Возвращаемое значение может быть единственным значением или кортежем значений,...
Реализация генераторов Реализация генераторовМы рассмотрели коллекции-последовательности, tuple, collections, na-medtuple и list, поддерживающие, как и строки, возможность извлечения срезов. Также было рассмотрено использование оператора распаковывания...
Парсинг документов XML Парсинг документов XMLXML: Для парсинга документов XML широко используются два основных подхода. Один из них основан на анализе DOM (Document Object Model -объектная модель документа), а другой - на использовании SAX (Simple API for XML - упрощенный...
Копирование коллекций Копирование коллекцийКопирование коллекций: Поскольку в языке Python повсюду используются ссылки на объекты, когда выполняется оператор присваивания (=), никакого копирования данных на самом деле не происходит. Если справа от оператора находится литерал,...
Пакеты
При необходимости точно указать, что должно быть импортировано при использовании синтаксической конструкции from module import , мы можем определить список allнепосредственно в модуле; в этом случае инструкция from module import будет импортировать только те объекты, имена которых присутствуют в спискеall. До сих пор мы демонстрировали только один уровень вложенности, но Python позволяет создавать столько уровней вложенности пакетов, сколько нам заблагорассудится. Мы всегда можем использовать свои собственные короткие имена для модулей, как показано в этом примере, хотя это повышает риск появления конфликтов имен.

Собственные модули: Поскольку модули - это всего лишь файлы с расширением .ру, они создаются без особых формальностей. В этом разделе мы рассмотрим два нестандартных модуля. Первый модуль, TextUtil (в файле TextUtil.py), содержит всего три функции: is_balanced , возвращающую True, если в строке, переданной ей, соблюдена парность скобок разных типов; shor-ten и simplifyO, способную удалять лишние пробелы и другие символы из строки.

При рассмотрении этого модуля мы также покажем, как использовать программный код в строках документирования в качестве модульных тестов. Второй модуль, CharGrid (в файле CharGrid.py), содержит сетку символов и позволяет "рисовать" линии, прямоугольники и текст в сетке и отображать сетку в консоли. Этот модуль демонстрирует некоторые приемы, с которыми мы не сталкивались ранее, и является более типичным примером более крупных и более сложных модулей.

Модуль TextUtil: Структура этого модуля (и большинства других модулей) немного отличается от структуры программы. Первая строка модуля - это строка "shebang", вслед за которой следует несколько строк комментариев (обычно упоминание об авторских правах и информация о лицензионном соглашении). Затем, как правило, следует строка в тройных кавычках, в которой дается краткий обзор содержимого модуля, часто с несколькими примерами использования - это строка документирования модуля.

Строку документирования этого модуля можно сделать доступной программам (или другим модулям), если импортировать модуль как TextUtil.doc. Вслед за строкой документирования следуют инструкции импортирования, в данном случае - единственная инструкция, и далее находится остальная часть модуля. Мы уже видели полный текст функции shorten , поэтому не будем повторно воспроизводить его здесь. И поскольку в настоящее время нас интересуют модули, а не функции, мы продемонстрируем только программный код функции is_balanced , хотя функцию simplifyO приведем полностью, вместе со строкой документирования.
Навигация: 1 2 3 4
 
 
© Copyright