Использование инструкции 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
>>> 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
Комментариев нет:
Отправить комментарий