Функция в Python может не иметь доступа к глобальной переменной, если в любом месте функции определена локальная переменная с тем же именем. 1
Имена, которым выполняется присваивание внутри функции, по умолчанию рассматриваются как локальные — они располагаются в области видимости функции и существуют только во время работы функции. 2
Чтобы получить доступ к глобальной переменной и изменить её внутри функции, нужно использовать ключевое слово global
. 4 Оно записывается перед именем переменной, которая дальше внутри функции будет считаться глобальной. 3
Также получить доступ к глобальной переменной внутри функции можно, если определить её вне функции — в этом случае она по умолчанию является глобальной. 4 В этом случае не нужно использовать ключевое слово global
. 4