Область видимости переменной — это та часть кода, где переменная доступна, открыта и видима.
Существует четыре типа области видимости для переменных Python:
- Local (локальная область видимости)
- Enclosing (охватывающая)
- (глобальная)
- Built-in (встроенная)
- Local - локальная область видимости, определяется прямиком внутри своего блока
var = "Глобальная переменная"
def func():
var = "Локальная переменная"
print(var)
print(var)
func()
- Enclosing - позволяет выводить из local видимости на более верхний уровень, но не глобальный уровень, к примеру есть функция в которой определена еще одна функция, ключ слово nonlocal позволяет внутренней функции выйти на уровень видимости более высокой функции, но она еще не является глобальной
def func1():
name = "Первый уровень"
print(name)
def func2():
nonlocal name
name = "Второй уровень"
func2()
print(name)
func1()
- Global - глобальная область определяется на верхнем уровне модуля, и от туда может быть доступна в локальной области при помощи спец. слова global после чего значение глобальной переменной можно изменять внутри локальной области видимости
var = "Global"
def def_1():
global var
print(var)
print(var)
def_1()
print(var)
- Built-in - встроенная область видимости, которая позволяет использовать стандартный набор классов, эту область еще можно прировнять к глобальной области. Сюда входят такие вещи как функция open() которые уже встроены в Python, и которые можно использовать сразу по дефолту