16 августа 2014 г.

Пространства имен модулей

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


29 июля 2014 г.

Давно ждал

Доброго времени народ.
Не знаю с чего начать, могу сказать одно - что ждал я сам этого очень долго.
Думаю вы уже заинтересованы, потому не буду тянуть долго свою историю и почти сразу приступлю к делу.

Уже давненько...

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 всегда импортирует весь модуль целиком, если он еще не был импортирован, независимо от того, сколько  имен  копируется  из  файла.  Нет  никакой  возможности  загрузить  только часть модуля (например, только одну функцию), но так как модули – это байт-код, а не машинный код, влияние на производительность оказывается незначительным.

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

Поменять значение имен в других файлах

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

Чтобы изменить глобально переменную в определенном файле, необходимо использовать инструкцию import:
% python
>>> from small import x, y     # Скопировать два имени
>>> x = 42                     # Изменить только локальное имя x

>>> import small               # Получить имя модуля
>>> small.x = 42               # Изменить x в другом модуле

Вот такой короткий пост, скоро будет еще один...

30 апреля 2014 г.

15 февраля 2014 г.

Операции присваивания в import и from

Так же, как и инструкция def, инструкции import и from являются выполняемыми  инструкциями,  а  не  объявлениями  времени  компиляции.  Они  могут вкладываться в условные инструкции if, присутствовать в объявлениях функций def и так далее, и они не имеют никакого эффекта, пока интерпретатор не достигнет их в ходе выполнения программы. Другими словами, импортируемые модули и имена в них не будут доступны, пока не будут выполнены соответствующие инструкции import или from. Кроме того, подобно инструкции def, import и from – это явные операции присваивания:

•  Инструкция import присваивает объект модуля единственному имени.
•  Инструкция from присваивает одно или более имен объектам с теми же именами в другом модуле.


10 февраля 2014 г.

Почему import перестает работать?

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


2 февраля 2014 г.

import и from - функции для использования модулей

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

Файл модуля с расширением .py можно подключить используя команды import или же from. Эти функции могут отыскать и загрузить файл модуля, если этого еще не было сделано.
Отличие у этих команд в том что:
import - загружает модуль целиком;
from - загружает или же копирует отдельные имена из модуля.

Теперь несколько примеров для каждой: