Image

Imagespe wrote in Imageru_python

Category:

Введение в пакеты модулей Python

О чем мы говорим?

Помимо возможности импортировать имя модуля существует возможность импортировать имена каталогов. Каталог, в терминологии Python, является пакетом, поэтому такая операция импортирования называется импортированием пакетов. Такая операция, по сути, превращает имя каталога в в разновидность пространства имен, в котором атрибутами являются подкаталоги и файлы модулей.

Импортирование пакетов

Как же работает импортирование пакетов? В инструкциях import и from можно указать список имен в пути к каталогу, разделяя их символами точки:
import dir1.dir2.mod
или так:
from dir3.dir4.mod import x

Существует еще одно условие, которое необходимо соблюдать: каждый каталог пути, указанный в инструкции импортирования пакета, должен содержать файл с именем __init__.py, в противном случае операция импортирования завершится неудачей.

Файлы __init__.py могут содержать программный код на языке Python, как любые другие файлы модулей. Отчасти они являются объявлениями для интерпретатора, и могут вообще ничего не содержать. Эти файлы, будучи объявлениями, предотвращают неумышленное сокрытие в каталогах с совпадающими именами истинно требуемых модулей. Без этого механизма интерпретатор мог бы выбирать каталоги, которые не имеют никакого отношения к вашему программному коду только потому, что в пути поиска они появляются ранее.

Заключение

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