7 апреля 2016 г.

Python: from import для импорта пакетов

Использование инструкции import могут оказаться несколько неудобным для импортирования  пакетов,  потому  что  в  этом  случае  далее  в  программе  вам придется часто вводить полные пути для обращения к именам. В примере из предыдущего раздела, например, приходилось каждый раз вводить полный путь от dir1, когда необходимо было обратиться к переменой z. Если попытаться  непосредственно  обратиться  к  dir2 или  mod,  будет  получено  сообщение  об ошибке:
>>> dir2.mod
NameError: name ‘dir2’ is not defined
>>> mod.z
NameError: name ‘mod’ is not defined


Поэтому  для  импортирования  пакетов  часто  более  удобно  использовать  инструкцию from, чтобы избежать необходимости ввода полного имени при каждом  обращении  к  нему.  Еще  более  важно  следующее:  если  вы  когда-нибудь произведете реструктуризацию дерева каталогов, то в случае использования инструкции from достаточно будет обновить путь только в самой этой инструкции, тогда как в случае использования инструкции import придется обновлять все обращения к именам в изменившемся пакете. Расширение import as, обсуждаемое в следующей главе, поможет вам определить сокращенные синонимы
для полных путей:
% python
>>> from dir1.dir2 import mod  # Описание пути находится только в этом месте
dir1 init
dir2 init
in mod.py
>>> mod.z                      # Указывать полный путь не требуется
3
>>> from dir1.dir2.mod import z
>>> z
3
>>> import dir1.dir2.mod as mod    # Использование короткого синонима
>>> mod.z
3

Комментариев нет:

Отправить комментарий