Два ключевых слова, используемые для изменения области видимости переменной.

Нелокальный

Рассмотрим приведенный выше случай, когда у нас есть внутренняя функция. Мы пытаемся напечатать переменную, объявленную во внешней функции, она скомпилируется и отобразится «Hello World». Однако, если мы попытаемся изменить переменную str, мы получим ошибку "Переменная str ссылается перед назначением".

Чтобы избежать ошибки, мы используем ключевое слово nonlocal. Ключевое слово nonlocal используется, когда мы хотим изменить переменные, объявленные во внешней функции.

Приведенный выше фрагмент кода будет выполняться без каких-либо ошибок.

Глобальный

Ключевое слово global используется, когда мы хотим изменить переменную, созданную вне функции.

В приведенном выше случае мы пытаемся изменить переменную global_str, созданную вне функции func.

Пример

  • Мы используем ключевое слово nonlocal для изменения переменной str внутри func2.
  • Мы используем ключевое слово global для изменения переменной global_strвнутри func2.

Первоначально опубликовано на https://www.realpythonproject.com 21 марта 2021 г.