Области видимости переменных в Python
В Python переменные имеют определенные области видимости, которые определяют их доступность в коде. Существует четыре основных типа области видимости: локальная, глобальная, встроенная и внешняя (nonlocal).
Локальная область видимости
Переменные, объявленные внутри функции, являются локальными и доступны только внутри этой функции.
def my_function():
local_var = "I am local"
print(local_var)
my_function()
print(local_var) # Вызовет ошибку, т.к. local_var не определена вне функции
Глобальная область видимости
Переменные, объявленные вне функций, являются глобальными и доступны во всем коде программы. Для использования глобальной переменной внутри функции, используйте ключевое слово global
.
global_var = "I am global"
def my_function():
global global_var
print(global_var)
my_function()
print(global_var)
Встроенная область видимости
Встроенная область видимости содержит имена функций и переменных, предоставляемых самим языком Python. Например, встроенные функции print()
и len()
доступны в любом месте кода без необходимости их объявления.
Область видимости nonlocal
Ключевое слово nonlocal
используется для доступа к переменным из внешней функции (но не глобальной) во вложенных функциях. Это позволяет изменять значения переменных из внешней функции.
def inner_function():
nonlocal outer_var
outer_var = "I am modified by inner function"
print(outer_var)
inner_function()
print(outer_var)
Понимание областей видимости переменных важно для написания правильно работающего кода на Python. Управление переменными в различных областях видимости позволяет разработчикам контролировать доступность переменных, что повышает гибкость и надежность программ.