Python 3: Область видимости

Назад | Python 3 учебник | Вперёд

Область видимости переменной — та область, внутри которой переменная видна.

В Python 3 существует три области видимости:

Локальная область видимости

Локальная область видимости используется по умолчанию. Когда вы объявляете переменную, то она доступна только внутри функции, в которой объявлена:

Вставьте этот код в Spyder 3 и запустите. В консоли выведется следующее:

В начале мы объявили переменную x  и присвоили ей значение 10. Но внутри функции func1 мы объявляем ещё одну переменную x и присваиваем ей значение 11. Внутри функции func1 внешняя переменная x не видна. Мы не можем к ней обратиться. Внутри функции видны только переменные, объявленные внутри этой функции и её параметры. Поэтому внутри функции мы видим значение 11.

Затем мы объявляем ещё одну функцию func2, внутри которой объявляем ещё одну переменную x со значением 12. Внутри func2 мы не видим внешнюю x со значением 11 и не видим x со значением 10. Нам доступна только x со значением 12.

Посмотрите на следующий код:

Результатом работы этого кода будет:

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

Но следующий код уже не будет работать:

Глобальная область видимости

С помощью ключевого слова global мы можем разрешить использование переменной, объявленной внутри функции, последующему блоку кода.. Пример:

Результат работы этого кода будет следующим:


Область видимости nonlocal

Была добавлена в Python 3. Она отличается от global тем, что требует, чтобы переменные уже существовали. А также она ограничивает область поиска уже существующих переменных, так как исключает из неё глобальные переменные модуля и переменные текущей функции

Результат:

Вот так.

Назад | Python 3 учебник | Вперёд

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *