Показаны сообщения с ярлыком from. Показать все сообщения
Показаны сообщения с ярлыком from. Показать все сообщения

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

25 мая 2014 г.

Когда использовать import

И так, в предыдущем посте, было рассказано о минусах инструкции from и о том, что использование import более надежней и практичней. Поэтому речь пойдет о использовании import.

Минусы инструкции from

Здравствуйте читатели. Ну что, вот вам еще очередная порция текста по программированию используя Python )
На этот раз речь пойдет о минусах использовании инструкции from.


5 мая 2014 г.

Равны ли import и from ?

В предыдущей записи после from потребовалось выполнить инструкцию import, чтобы получить доступ к имени модуля  small,  –  инструкция  from  копирует  только  имена  из одного  модуля в другой и ничего не присваивает самому имени модуля. Инструкция  from,
приведенная ниже:
from module import name1, name2    # Копировать только эти два имени
эквивалентна следующей последовательности, по крайней мере, концептуально:
import module          # Получить объект модуля
name1 = module.name1   # Скопировать имена с помощью присваивания
name2 = module.name2
del module             # Удалить имя модуля

Как и все операции присваивания, инструкция from создает новые переменные в импортирующем модуле, которые ссылаются на объекты с теми же именами в импортируемом файле. При этом копируются только имена, а не сам модуль. При использовании формы from * этой инструкции (from module import *) эквивалентная последовательность действий та же самая, только при этом копируются все имена, определенные на верхнем уровне импортируемого модуля.

Обратите внимание, что на первом шаге инструкция from выполняет обычную операцию import. Вследствие этого инструкция from всегда импортирует весь модуль целиком, если он еще не был импортирован, независимо от того, сколько  имен  копируется  из  файла.  Нет  никакой  возможности  загрузить  только часть модуля (например, только одну функцию), но так как модули – это байт-код, а не машинный код, влияние на производительность оказывается незначительным.

Не забываем ставить лайк и репосты, чем больше лайков тем больше тут будет постов )