Разница между ключевыми словами global и nonlocal в Python заключается в их использовании для управления областью видимости переменных. 13
global позволяет изменять изнутри функции значение глобальной переменной. 2 Оно записывается перед именем переменной, которая дальше внутри функции будет считаться глобальной. 2
nonlocal используется во вложенных функциях. 2 С его помощью можно изменять значения переменных, которые были определены во внешней функции, но не находятся в глобальной области видимости. 2 Обычно nonlocal применяется, когда нужно прикрепить идентификатор к переменной или параметру окружающей внешней функции. 1
Таким образом, global используется для работы с глобальными переменными изнутри функции, а nonlocal — для работы с переменными из ближайшего окружающего контекста, который не является глобальным. 3