Вопрос14
Осталось:

Что такое области видимости переменных в Python?

Образцовый ответ

Показывать ответ по умолчанию

В Python область видимости определяет, где переменная доступна. Python использует правило LEGB для поиска переменных.

Правило LEGB:

  • L — Local: переменные внутри текущей функции.
  • E — Enclosing: переменные во внешней (вложенной) функции.
  • G — Global: переменные на уровне модуля.
  • B — Built-in: встроенные имена Python (print, len, range).
x = "глобальная"  # Global

def outer():
    x = "внешняя"  # Enclosing

    def inner():
        x = "локальная"  # Local
        print(x)  # "локальная"

    inner()

outer()

Ключевое слово global:

Позволяет изменять глобальную переменную внутри функции:

counter = 0

def increment():
    global counter
    counter += 1

increment()
print(counter)  # 1

Ключевое слово nonlocal:

Позволяет изменять переменную из внешней функции:

def outer():
    count = 0

    def inner():
        nonlocal count
        count += 1
        return count

    return inner

counter = outer()
print(counter())  # 1
print(counter())  # 2