Ключевое слово
global
указывает, что переменную следует искать в глобальном пространстве имен, как в globals()
. Это не что иное, как const
объявление в c++
. Поэтому, прежде чем обращаться к global a = 1
, переменная a
должна была быть создана.
def foo():
global a
Это прекрасно работает без SyntaxError
. Но поскольку a
не определен перед функцией foo
, интерпретатор вернет NameError
при вызове foo()
.
В заключение, ключевое слово global
используется для изменения переменной, определенной в глобальной области видимости, внутри локальной области видимости, такой как функция.