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

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

Мы должны сделать все возможное, чтобы гарантировать несовпадение имени нашего модуля верхнего уровня (Graphics) с каким-либо из имен верхнего уровня в стандартной библиотеке- с целью избежать конфликтов имен. (В системе UNIX это легко обеспечить, достаточно лишь использовать в качестве первого символа имени символ верхнего регистра, так как в именах модулей стандартной библиотеки используются только символы нижнего регистра.) В небольших программах некоторые программисты предпочитают использовать более короткие имена, и язык Python позволяет делать это двумя, немного отличающимися способами.

Здесь мы импортировали модуль Jpeg из пакета Graphics и сообщили интерпретатору, что вместо полного квалифицированного имени Graphics. Jpeg хотим использовать более короткое имя Jpeg. Этот фрагмент программного кода напрямую импортирует модуль Png из пакета Graphics. Данная синтаксическая конструкция (import . . . from) обеспечивает непосредственный доступ к модулю Png. Мы не обязаны использовать в нашем программном коде оригинальные имена модулей. Здесь мы используем модуль Tiff, но внутри нашей программы переименовали его в модуль picture.

В некоторых ситуациях бывает удобно загружать все модули пакета одной инструкцией. Для этого необходимо отредактировать файл init.py пакета, записав в него инструкцию, которая указывала бы, какие модули должны загружаться. Эта инструкция должна присваивать список с именами модулей специальной переменной all. ЭТИМ ограничивается необходимое содержимое файла init .py, помимо этого, мы можем поместить в него любой программный код, какой только пожелаем.

Синтаксис from package import напрямую импортирует все имена модулей, упомянутые в списке all. То есть после выполнения этой инструкции мы получим прямой доступ не только к модулю Xpm, но и ко всем другим модулям. Как отмечалось ранее, этот синтаксис может применяться и к модулям, то есть from module import , в этом случае будут импортированы все функции, переменные и другие объекты, определяемые модулем (за исключением тех, чьи имена начинаются с символа подчеркивания).
Навигация: 1 2 3 4
 
 
© Copyright