Архив автора: admin

Вложенные пространства имен

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

Файл mod3.py определяет единственное глобальное имя и атрибут операцией присваивания:
X = 3
Файл mod2.py определяет свою переменную X, затем импортирует модуль mod3 и спользует квалификацию имени, чтобы получить доступ к атрибуту импортированного модуля:
X = 2
import mod3

print(X, end=’ ‘)      # Моя глобальная переменная X
print mod3.X           # Глобальная переменная X из модуля mod3
Файл mod1.py также определяет свою собственную переменную X, затем импортирует модуль mod2 и получает значения атрибутов обоих модулей:
X = 1
import mod2

print(X, end=’ ‘)          # Моя глобальная переменная X
print(mod2.X, end=’ ‘)     # Переменная X из модуля mod2
print(mod2.mod3.X          # Переменная X из модуля mod3
В  действительности,  когда  mod1  импортирует  mod2,  он  создает  двухуровневое вложение пространств имен. Используя полный путь к имени mod2.mod3.X, он может погрузиться в модуль mod3, который вложен в импортированный модуль mod2. Суть в том, что модуль mod1 может обращаться к переменным X во всех трех файлах и, следовательно, имеет доступ ко всем трем глобальным областям видимости:
% python mod1.py
2 3
1 2 3
Однако обратное утверждение неверно: модуль mod3 не имеет доступа к именам в mod2, а модуль mod2 не имеет доступа к именам в mod1. Возможно, этот пример будет проще понять, если отвлечься от пространств имен и областей видимости и сосредоточиться на объектах, задействованных в примере. mod2 внутри модуля mod1 – это всего лишь имя, которое ссылается на объект с атрибутами, некоторые из которых могут ссылаться на другие объекты с атрибутами (инструкция import выполняет операцию присваивания). Для таких путей, как
mod2.mod3.X, интерпретатор Python выполняет вычисления слева направо, извлекая атрибуты из объектов.

Обратите внимание: в mod1 можно вставить инструкцию import mod2 и затем использовать обращение mod2.mod3.X, но нельзя записать import mod2.mod3 – такой синтаксис используется для операции импортирования пакетов (каталогов), которая будет описана в следующей главе. При импортировании пакетов также создаются вложенные пространства имен, но в этом случае инструкция import воспринимает свой аргумент как дерево каталогов, а не как цепочку модулей.

Автор: Няшный Человек
Дата публикации: 2015-11-11T22:57:00.000+02:00

Еллоу

Еллоу

Лабидохромис еллоу – аквариумная рыбка, являющаяся еще одним представителем семейства африканских цихлид. Известна также под названиями лабидохромис желтый, цихлида-колибри. В природе населяет мелководье и глубины до 40м озера Малави.

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

Пангасиус сиамский

Пангасиус сиамский

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

Плед крючком — Восточный орнамент

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

вязание крючком, мотивы, плед, мастер-класс,
вязание крючком, мотивы, плед, мастер-класс,

 

вязание крючком, мотивы, плед, мастер-класс,

 

вязание крючком, мотивы, плед, мастер-класс,

вязание крючком, мотивы, плед, мастер-класс,

вязание крючком, мотивы, плед, мастер-класс,

 

вязание крючком, мотивы, плед, мастер-класс,

 

вязание крючком, мотивы, плед, мастер-класс,

 

Автор: Ангелина
Дата публикации: 2015-11-11T20:48:00.001+02:00