Курс Python → Работа с областями видимости переменных

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

Для примера рассмотрим следующий код:


def func1():
    enclosing = 0
    
    def func2():
        nonlocal enclosing
        enclosing = 1
        
    func2()
    print(enclosing)

func1()

В данном примере переменная enclosing объявлена во внешней функции func1, а изменение ее значения происходит во внутренней функции func2 с помощью ключевого слова nonlocal. При вызове функции func1 будет изменено значение переменной enclosing на 1, что и будет выведено на экран.

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

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

Твои коллеги будут рады, поделись в

Автор урока

Дмитрий Комаровский
Дмитрий Комаровский

Автоматизация процессов
в КраснодарБанки.ру

Другие уроки курса "Python"

  1. Оператор Walrus в Python 3.8
  2. Получение текущей директории
  3. Объединение списков в Python
  4. Официальный канал Python в Telegram
  5. Работа с Requests для HTTP-запросов
  6. Поиск частых элементов в списке
  7. Нахождение пересечения множеств
  8. Замыкания в Python
  9. Проверка подстроки в строке
  10. Создание новых списков через list comprehensions
  11. Вложенные циклы в Python
  12. Операции с комплексными числами
  13. Функции range() в Python
  14. Обработка исключений с блоком else
  15. Псевдонимы в Python
  16. Добавление цвета в консоли
  17. Транспонирование матрицы в Python
  18. Переопределение метода sub
  19. Взаимодействие с sys
  20. Оптимизация гиперпараметров в Python
  21. Определение размера папок в Python
  22. Переменные в Python: сокращение гласных
  23. Метод __getitem__ в Python
  24. Сокращение ссылок с pyshorteners
  25. Установка переменной среды в Python
  26. Вывод переменной и строки в Python
  27. Работа с IP-адресами в Python
  28. Операторы += в Python
  29. Итерации в Python
  30. Цикл for в Python
  31. Область видимости переменных
  32. Проверка типов с использованием isinstance
  33. Поиск наиболее частого элемента в списке
  34. Сохранение и загрузка модели в PyTorch
  35. Преобразование строк в числа в Python
  36. Шаблоны Flask: условия и циклы
  37. Именованные срезы в Python
  38. Импорт и использование модулей в Python
  39. Явный импорт в Python
  40. Генератор данных в Keras
  41. Подчеркивание в REPL
  42. Возврат нескольких значений из функции
  43. Логирование в Python
  44. Удаление falsy-значений из списка с помощью filter
  45. Python: изменяемые и неизменяемые коллекции
  46. Безопасный доступ к значениям словаря
  47. Работа с байтовыми строками в Python

Marketello читают маркетологи из крутых компаний