Airflow Cluster / Distributed Installation со всеми зависимостями в Amazon Linux

Python решает ваши переменные с - вообще - тремя доступными пространствами имен.

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

Существуют две функции: globals и locals, которые показывают вам содержимое двух из этих пространств имен.

Пространства имен создаются пакетами, модулями, классами, конструкцией объектов и функциями. Других ароматов пространств имен нет.

В этом случае вызов функции с именем x должен быть разрешен в локальном пространстве имен или в глобальном пространстве имен.

Локальный в этом случае является телом функция метода Foo.spam.

Глобальный - это хорошо глобальный.

Правило состоит в том, чтобы искать вложенные локальные пространства, созданные функциями метода (и определениями вложенных функций), а затем искать глобальные. Вот и все.

Нет других областей. Оператор for (и другие составные операторы, такие как if и try) не создают новые вложенные области. Только определения (пакеты, модули, функции, классы и экземпляры объектов.)

Внутри определения класса имена являются частью пространства имен классов. code2, например, должно быть квалифицировано именем класса. Обычно Foo.code2. Тем не менее, self.code2 также будет работать, потому что объекты Python смотрят на содержащийся класс как на обратную сторону.

Объект (экземпляр класса) имеет переменные экземпляра. Эти имена находятся в пространстве имен объекта. Они должны быть квалифицированы объектом. (variable.instance.)

Из метода класса вы имеете локальные и глобальные переменные. Вы говорите self.variable, чтобы выбрать экземпляр как пространство имен. Вы заметите, что self является аргументом для каждой функции-члена класса, делая его частью локального пространства имен.

См. Правила области Python , Область Python , Диапазон переменных .

0
задан Prashanthhh Kumarr 21 March 2019 в 18:36
поделиться