Область видимости
Область видимости — это часть программы, в которой по имени можно обратиться к объявленной переменной или подпрограмме. За её пределами имя недоступно или обозначает другой объект.
Как работает область видимости
Сначала выполняется декларация — объявление имени переменной или подпрограммы. Затем это имя можно использовать только там, где его область видимости ещё действует. Если одинаковые имена объявлены во вложенных областях, обычно используется ближайшее объявление.
У переменной, созданной внутри функции, область видимости часто ограничена этой функцией. Такую переменную называют локальной переменной. Переменная, доступная во многих частях программы, называется глобальной переменной. Точные правила зависят от языка.
В Python переменная \(x\), созданная внутри функции, доступна только во время выполнения этой функции:
```python
def show():
x = 10
print(x)
show()
# print(x) вне функции вызовет ошибку
```
Внутри show имя x доступно, а после выхода из функции — нет. Это не связано со значением переменной: проблема именно в области видимости имени.
Область видимости отвечает на вопрос «где имя можно использовать?», а время жизни объекта — «как долго существует значение, связанное с этим именем?». Эти понятия связаны, но не совпадают. Также область видимости не определяет порядок вызовов функций — для этого полезны стек вызовов и граф вызовов.
Где доступна локальная переменная, объявленная внутри функции?
Главное
- Область видимости показывает, где имя переменной или подпрограммы доступно.
- Локальные имена действуют в ограниченной области, а глобальные — в более широкой части программы.
- Область видимости не равна времени жизни объекта: первая описывает место использования имени, вторая — продолжительность существования значения.