Middle
267
Как работают операторы global и nonlocal в Python?
Ответ от нейросети
sobes.tech AI
В Python операторы global и nonlocal используются для управления областью видимости переменных внутри функций.
-
globalобъявляет, что переменная внутри функции ссылается на глобальную переменную (в модуле), а не создаёт новую локальную. Это позволяет изменять глобальные переменные изнутри функции. -
nonlocalиспользуется внутри вложенных функций, чтобы указать, что переменная берётся из ближайшей внешней (но не глобальной) области видимости. Это позволяет изменять переменные из внешней функции внутри вложенной.
Пример:
a = 10 # глобальная переменная
def outer():
x = 5 # локальная переменная outer
def inner():
nonlocal x # обращаемся к x из outer
x = 7
global a
a = 20
inner()
print(x) # 7
outer()
print(a) # 20
Без global и nonlocal попытка присвоить значение переменной внутри функции создаст новую локальную переменную, не влияя на внешнюю.