Найти в Дзене
[PYTHON:TODAY]

👨‍💻 Области видимости для переменных в Python

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


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

Существует четыре типа области видимости для переменных Python:

🌵 Local (локальная область видимости)

🌵 Enclosing (охватывающая)

🌵 (глобальная)

🌵 Built-in (встроенная)


1. Local - локальная область видимости, определяется прямиком внутри своего блока

var = "Глобальная переменная"

def func():
var = "Локальная переменная"
print(var)

print(var)
func()

2. Enclosing - позволяет выводить из local видимости на более верхний уровень, но не глобальный уровень, к примеру есть функция в которой определена еще одна функция, ключ слово nonlocal позволяет внутренней функции выйти на уровень видимости более высокой функции, но она еще не является глобальной

def func1():
name = "Первый уровень"
print(name)

def func2():
nonlocal name
name = "Второй уровень"

func2()
print(name)

func1()

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

var = "Global"

def def_1():
global var
print(var)

print(var)
def_1()
print(var)

4. Built-in - встроенная область видимости, которая позволяет использовать стандартный набор классов, эту область еще можно прировнять к глобальной области. Сюда входят такие вещи как функция open() которые уже встроены в Python, и которые можно использовать сразу по дефолту