Курс 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. Обмен данными с asyncio.Queue
  2. Делегирование в Python
  3. Обход словаря в Python
  4. Декоратор total_ordering для класса Point
  5. Переворот строки
  6. Профилирование с Pandas
  7. Генераторы в Python
  8. Аннотации типов в Python
  9. Flask — веб-фреймворк Python
  10. Замена переменных в Python
  11. Документация функции help() в Python
  12. Переопределение метода __eq__
  13. Закрытие файла в Python
  14. Работа с библиотекой xkcd
  15. Метод count() для списка
  16. Удаление символов новой строки в Python.
  17. Итерация по коллекции в Python
  18. Работа с Enum в Python3.
  19. F-строки в Python 3.8
  20. Генерация строк с .join()
  21. Отрицательные индексы списков в Python
  22. Активация Matplotlib в Jupyter
  23. Оператор «or» в Python
  24. Транспонирование матрицы в Python
  25. Извлечение данных из JSON
  26. Получение текущей даты и времени с помощью datetime
  27. Управление браузером с Selenium
  28. Объединение словарей в Python
  29. Список импортированных модулей в Python
  30. Импорт модулей в Python 3.12
  31. Логирование в Python
  32. Строковое представление объектов
  33. Преобразование списка в словарь через генератор
  34. Автоматизация с Python
  35. Транспонирование 2D-массива с помощью zip
  36. Расчет времени выполнения
  37. Метод join для наборов
  38. Модуль subprocess: запуск внешних команд
  39. Класс UserDict: дополнительная функциональность
  40. Лямбда-функции в defaultdict
  41. Модуль os: работа с файлами и папками
  42. Оператор «is not» в Python
  43. Генерация случайных чисел в Python
  44. Подсчет элементов с помощью Counter
  45. Кортеж в Python: создание и использование
  46. Разница между датами
  47. Глубокое копирование объектов

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